django - 将取消/关闭按钮添加到 Django 管理模型编辑器
问题描述
我想在 django 默认管理模型编辑器中添加一个取消按钮,以便在用户决定取消编辑/创建模型的情况下返回上一页。一种选择是扩展“admin/submit_line.html”并向其添加一个取消按钮。但是,默认的 django 'admin/submit_line.html' 模板已经包含一个 'Close' 按钮,如下面的代码片段所示。
<div class="submit-row">
{% block submit-row %}
{% if show_save %}<input type="submit" value="{% trans 'Save' %}" class="default" name="_save">{% endif %}
...
{% if show_save_as_new %}<input type="submit" value="{% trans 'Save as new' %}" name="_saveasnew">{% endif %}
{% if show_save_and_add_another %}
<input type="submit" value="{% trans 'Save and add another' %}" name="_addanother">{% endif %}
...
{% if show_close %}<a href="{% url opts|admin_urlname:'changelist' %}" class="closelink">{% trans 'Close' %}</a>
{% endif %}
{% endblock %}
</div>
如果我复制了上面的模板并将 show_close 变量覆盖为 True,则将显示关闭按钮并按预期关闭表单。但是没有办法从 models.py 或 admin.py 类中配置“show_close”可见性吗?
解决方案
submit_line.html
使用以下内容覆盖模板:
{% extends "admin/submit_line.html" %}
{% load i18n admin_urls %}
{% block submit-row %}
{{ block.super }}
{% if not show_close and adminform.model_admin.show_close_button %}
<a href="{% url opts|admin_urlname:'changelist' %}" class="closelink">{% translate 'Close' %}</a>
{% endif %}
{% endblock %}
然后在您的管理类中,您可以将字段show_close_button
(可以选择您想要的任何内容)设置为 True/False,并且关闭按钮将显示/隐藏。
class MyAdmin(admin.ModelAdmin):
...
show_close_button = True
...
使用adminform.model_admin.show_close_button
您将进入模板中的该字段。
推荐阅读
- reactjs - 这段代码在 React Native 和 Typescript 中是什么意思?
- python - 用scrapy运行多个蜘蛛有什么限制吗?
- c++ - std::stack 是什么意思
> s1; - laravel - Laravel:如何保存复选框值
- javascript - 为什么我的方法没有在实例上定义
- reactjs - 使用 Typescript 和 Jest 返回 ReactNode 的测试函数
- python - 获取传入的 TAPI 调用
- javascript - 无论起点如何,如何检查视频是否连续播放 30 秒?
- python - 导入库实用程序
- javascript - Webpack:如何在某些输出文件中保持导入?