扩展 Django 管理员删除确认页面
Posted
技术标签:
【中文标题】扩展 Django 管理员删除确认页面【英文标题】:Extending Django admin delete confirmation page 【发布时间】:2021-09-25 19:39:48 【问题描述】:我想知道是否可以为特定应用程序和模型扩展 Django Admin 的删除确认页面。我想要使用户能够像 django 管理界面那样删除所有记录的功能。可以在我的应用中扩展 delete Confirmation.html
【问题讨论】:
【参考方案1】:您可以扩展 Django 管理员删除确认页面。要扩展它,在您的模板目录中,创建一个名为 admin
的目录并创建一个名为 delete_selected_confirmation.html
的 html 文件,其内容如下 (the default admin delete confirmation page source)
% extends "admin/base_site.html" %
% load i18n l10n admin_urls static %
% block extrahead %
block.super
media
<script src="% static 'admin/js/cancel.js' %" async></script>
% endblock %
% block bodyclass % block.super app- opts.app_label model- opts.model_name delete-confirmation delete-selected-confirmation% endblock %
% block breadcrumbs %
<div class="breadcrumbs">
<a href="% url 'admin:index' %">% translate 'Home' %</a>
› <a href="% url 'admin:app_list' app_label=opts.app_label %"> opts.app_config.verbose_name </a>
› <a href="% url opts|admin_urlname:'changelist' %"> opts.verbose_name_plural|capfirst </a>
› % translate 'Delete multiple objects' %
</div>
% endblock %
% block content %
% if perms_lacking %
<p>% blocktranslate %Deleting the selected objects_name would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:% endblocktranslate %</p>
<ul>
% for obj in perms_lacking %
<li> obj </li>
% endfor %
</ul>
% elif protected %
<p>% blocktranslate %Deleting the selected objects_name would require deleting the following protected related objects:% endblocktranslate %</p>
<ul>
% for obj in protected %
<li> obj </li>
% endfor %
</ul>
% else %
<p>% blocktranslate %Are you sure you want to delete the selected objects_name ? All of the following objects and their related items will be deleted:% endblocktranslate %</p>
% include "admin/includes/object_delete_summary.html" %
<h2>% translate "Objects" %</h2>
% for deletable_object in deletable_objects %
<ul> deletable_object|unordered_list </ul>
% endfor %
<form method="post">% csrf_token %
<div>
% for obj in queryset %
<input type="hidden" name=" action_checkbox_name " value=" obj.pk|unlocalize ">
% endfor %
<input type="hidden" name="action" value="delete_selected">
<input type="hidden" name="post" value="yes">
<input type="submit" value="% translate 'Yes, I’m sure' %">
<a href="#" class="button cancel-link">% translate "No, take me back" %</a>
</div>
</form>
% endif %
% endblock %
现在目录和文件结构应该如下所示。现在您可以根据需要扩展上述模板。
├── templates
└── admin
└── delete_selected_confirmation.html
【讨论】:
以上是关于扩展 Django 管理员删除确认页面的主要内容,如果未能解决你的问题,请参考以下文章