我想为我的Purchase模型创建一个模型管理器:
class Purchase(models.Model)
number = models.IntegerField
class InventoryLog(models.Model)
purchase = models.ForeignKey(Purchase)
sold_out = models.BooleanField(default=false)
我希望我的模型管理员返回与Purchase
对象无关的任何InventoryLog
个对象,sold_out
值为True
有没有办法用查询集,Q对象或F对象来处理这个问题,还是我需要求助于for循环?
答案 0 :(得分:2)
我相信Purchase.objects().exclude(inventorylog__sold_out=True)
会这样做。
答案 1 :(得分:0)
如果您想为您的模型使用manage,请执行以下操作:
#models.py
class PurhchaseNotSoldOut(models.Manager):
def get_queryset(self):
return super(PurchaseNotSoldOut, self).get_queryset()\
.exclude(purhcase_logs__sold_out=True)
class Purchase(models.Model)
number = models.IntegerField
notSoldOut = PurchaseNotSoldOut()
class InventoryLog(models.Model)
purchase = models.ForeignKey(Purchase, related_name='purchase_logs')
sold_out = models.BooleanField(default=false)
代码示例更新感谢Peter DeGlopper评论。