使用Django ORM删除0项记录

时间:2012-08-10 03:14:48

标签: django django-models

我有以下表结构:

class Tags:
    name = fields.CharField(max_length=100)
    ref     = models.ManyToManyField(RefTags)

class RefTags
    foo = varchar(128)
    tag = models.ForeignKey('Tag')

如果RefTags中没有相关记录,如何从标签中删除?

由于

编辑:我想通了,这真的很容易:

Tag.objects.filter(ref__isnull =真).delete()

3 个答案:

答案 0 :(得分:0)

from models import Tags

Tags.objects.filter(...).delete()
Tags.objects.all().delete()

等...

取决于您想要删除的内容。

答案 1 :(得分:0)

这样的东西
for tag in Tags.objects.all():
    if tag not in RefTags.objects.all():
        RefTags.objects.filter(tag=tag).delete()

将RegTags.objects.all()放在一个列表中循环,然后进行删除可能会更有效。

答案 2 :(得分:0)

这是钱:

Tag.objects.filter(ref__isnull =真).delete()