【发布时间】:2019-01-26 23:38:02
【问题描述】:
图片我有以下型号:
class Product(models.Model):
name = models.CharField(max_length=20)
class Receipt(models.Model):
product = models.ForeignKey(Product)
user = models.ForeignKey(User)
我有一个产品 ID 和用户的输入列表。我想查询每个产品,是否已被该用户购买。请注意,我需要一个基于给定输入的包含所有现有产品的查询集,因为我需要每个产品的其他字段,即使该用户没有购买,所以我不能使用 Product.objects.filter(receipt__user=user)。
那么我可以创建一个临时布尔字段来在一个查询中显示此属性吗?我正在使用 Django 1.8 和 postgresql 9.3
更新要求:将产品分为两组。一个是这个特定用户购买的,另一个不是。我认为任何给定的过滤器都不能实现这一点。这应该通过注释或 F 表达式创建一个新的临时字段来实现。
【问题讨论】:
-
您的问题不清楚。您要过滤什么属性?
-
@Mint 将产品分成两组。一个是这个特定用户购买的,另一个不是。我认为任何给定的过滤器都不能实现这一点。这应该通过 annotate 或 F 表达式创建一个新的临时字段来实现。
标签: sql django postgresql django-models