鉴于以下两种模式:
class Card(models.Model):
disabled = models.BooleanField(default=False)
class User(models.Model):
owned_cards = models.ManyToManyField(Card)
Run Code Online (Sandbox Code Playgroud)
给定某个用户,我如何在一个查询中获取所有未禁用的Card对象,并且还存在于该用户的owned_cards字段中?
它实际上非常简单,您可以使用用户对象的owned_cards字段作为管理器.
enabled_cards = theuser.owned_cards.filter(disabled=False)
Run Code Online (Sandbox Code Playgroud)
在评论中回答第二个问题,这应该有效,使用Q对象来否定查找.
not_owned_cards = Card.objects.filter(~Q(id__in=theuser.owned_cards.all()), disabled=False)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |