【发布时间】:2022-12-10 18:19:09
【问题描述】:
这是我的模型:
class Flag(models.Model):
ban = models.ForeignKey('flags.Ban', on_delete=models.CASCADE, related_name='flags')
class Ban(models.Model):
punished = models.BooleanField(default=None)
Flag 在用户举报某些内容时触发。并将它们汇总到Ban实例中,供管理员验证。简而言之,一个禁令可以有很多标志。
有一次,作者被举报,在管理员前往那里之前手动删除他/她发送的内容。应该取消禁令。所以。在禁止列表视图中,我尝试将它们过滤掉并删除。
to_deletes = []
for ban in Ban.objects.all():
if not len(ban.flags.all()):
to_deletes.append(ban)
for ban in to_deletes:
ban.delete()
我想知道是否有一种方法可以将其写入查询集中,我所需要的只是一个 Ban.objects.all() 拒绝列表视图的空标志以提高性能和优雅度。
【问题讨论】:
标签: python django foreign-keys many-to-many django-queryset