1
假設我有以下型號:Django的查詢集多約束
class User(models.Model):
# ... some fields
class Tag(models.Model):
# ... some fields
class UserTag(models.Model):
user = models.ForeignKey(User, related_name='tags')
tag = models.ForeignKey(Tag, related_name='users')
date_removed = models.DateTimeField(null=True, blank=True)
現在我可以說,我想一切都還沒有被刪除的指定標籤的用戶(即date_removed =無)。如果我沒有擔心date_removed約束,我可以這樣做:
User.objects.filter(tags__tag=given_tag)
但我想誰有定標籤和有標籤不就可以了date_removed所有用戶。 Django中有一個簡單的方法可以在單個查詢集中實現嗎?假設我有數百萬用戶,因此獲取任何用戶名列表並將其保存在內存中都是不實際的。
輝煌,正是我所期待的 - 只是無法在文檔中找到它。謝謝! – samskeller
「filter(a,b)」和「filter(a).filter(b)」可以不同的(非常重要的)事實是Django最令人驚訝的特性之一。第一次閱讀文檔時容易忽略,即使您認爲自己正在徹底地做到這一點。 –