我有两种型号:
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)
如何使自定义操作clear_something
删除所有相关的Model B
条目?
假设queryset是一组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, request, queryset):
queryset.update(field=0)
for a in queryset:
B.objects.filter(f=a).delete()