django-admin在詳情頁自定義按鈕


如果是在表單最上面添加按鈕,新建一個HTML文件,這樣寫

{% extends 'admin/change_form.html' %}
{% block submit_buttons_top %}
    <div class="submit-row">
            <input type="submit" value="1.button" name="_render-sql">
            <input type="submit" value="2.button" name="_test-api">
    </div>
{% endblock %}

如果自定義按鈕要放在下面,這樣寫

{% block submit_buttons_bottom %}
<!--如果要保留原有按鈕,下面這行要保留-->
{% submit_row %}
<div class="submit-row">
            <input type="submit" value="1.button" name="_render-sql">
            <input type="submit" value="2.button" name="_test-api">
    </div>
{% endblock %}

將HTML文件放在當前app的templates目錄下

在admin.py的admin類中指定

change_form_template = 'new_change_form.html'

重寫reponse_change方法

    def response_change(self, request, obj):
        if "_test-api" in request.POST:
            #your code
            self.message_user(request, json.loads(s))
            return HttpResponseRedirect(".")
        elif "_render-sql" in request.POST:
            #給用戶發自定義消息,然后重定向到本頁面
            return HttpResponseRedirect(".")
        return super().response_change(request, obj)    

大功告成!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM