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最令人惊讶的特性之一。第一次阅读文档时容易忽略,即使您认为自己正在彻底地做到这一点。 –