Django ManyToManyField从相关模型中获取不在连接表中的记录

时间:2015-09-04 23:20:56

标签: django django-views

我正在使用Django ManyToManyField为照片分配标签。我把M2M字段放在标签模型中:

class Tags(models.Model):
    tag = models.CharField(max_length=100, blank=True, null=True)
    photos = models.ManyToManyField(Photos)

工作正常。我可以使用以下方式将所有标签分配给照片:

photo = Photos.objects.get(id=int(photo_id))
photo_tags = photo.tags_set.all()

然后为用户提供所有标签的列表,以便他们可以为我分配照片:

tag_list = Tags.objects.order_by('tag')

但是,我想将此列表限制为尚未分配给照片的标签,例如标签不在该照片的连接表中。

但坚持使用这里使用的ORM逻辑。有像tags_set_none或filter(tags_set = None)吗?

1 个答案:

答案 0 :(得分:1)

tags = Tags.objects.exclude(photos=photo)