【发布时间】:2015-09-04 23:20:55
【问题描述】:
我正在使用 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) 的东西吗?
【问题讨论】:
-
您可以获取这些标签的 id 并直接过滤标签以包含除这些之外的所有内容。我不知道这是否是最好的方法,因为这需要 2 个查询,但应该是一个有效的。
标签: django django-views