我正在使用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