我正在使用Django ManyToManyField为标签分配照片。我把M2M字段放在标签模型中:Django ManyToManyField从相关模型中获取不在连接表中的记录
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或过滤器(tags_set = None)?
您可以获取这些标签的ID并直接过滤标签以包含除这些标签以外的所有标签。我不知道这是否是最好的方法,因为这需要2个查询,但应该是有效的。 – cdvv7788