如果是在表單最上面添加按鈕,新建一個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)
大功告成!