我正在使用 Django 2.2.10。
我有一个模型叫Site
,以及一个名为Record
。
每条记录都与一个站点(外键)相关联。
我的应用程序运行几天/几周/几个月后,每个站点都可以有数千条与之关联的记录。我有效地使用数据库,所以这通常不是问题。
然而,在 Django 管理中,当我尝试删除站点时,Django 管理会尝试找出也将被删除的每个关联对象,并且因为我的外键使用on_delete=models.CASCADE
,这就是我想要的,它尝试生成一个页面,其中列出了数千条,可能是数百万条将被删除的记录。有时这会成功,但需要几秒钟。有时浏览器会放弃等待。
我怎样才能让 Django Admin 不列出每一个record
打算删除吗?也许只是说“将删除 x 条记录”之类的内容。
更新:我应该覆盖 Django admin 删除确认.html 吗?看起来罪魁祸首可能是这一行:
<ul>{{ deleted_objects|unordered_list }}</ul>
或者是否有一个选项可以启用自动不列出要删除的每个对象,也许如果对象计数超过 X 个对象?
更新2:从delete_confirmation.html 中删除上述行没有帮助。我认为生成deleted_objects 变量的视图花费的时间太长。不太确定如何覆盖 Django 管理视图
将其添加到您的管理类中,然后您可以使用此操作删除而不发出警告
actions = ["silent_delete"]
def silent_delete(self, request, queryset):
queryset.delete()
如果您想隐藏默认删除操作,请将其添加到您的管理类中
def get_actions(self, request):
actions = super().get_actions(request)
if 'delete_selected' in actions:
del actions['delete_selected']
return actions
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)