如何解决自定义Django管理员操作,删除与ForeignKey相关的条目
|| 我有两个模型:A(models.Model):
field = models.IntegerField()
B(models.Model):
f = models.ForeignKey(A)
在管理面板中,我有自定义操作,该操作清除(重置)Model A
中的一些信息:
def clear_something(modeladmin,request,queryset):
queryset.update(field=0)
如何使自定义操作“ 3”删除所有相关的“ 4”条目?
解决方法
假设queryset是一组A \,那么您应该能够遍历它们并删除每个A的\'b_set \'(反向FK查找),如下所示:
def clear_something(modeladmin,request,queryset):
queryset.update(field=0)
for a in queryset:
a.b_set.all().delete()
或者,使用B \的模型管理器:
def clear_something(modeladmin,queryset):
queryset.update(field=0)
for a in queryset:
B.objects.filter(f=a).delete()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。