基本Django查询
简单场景,但不知道如何查询: 我们有一个基本Django查询,django,orm,foreign-keys,django-queryset,Django,Orm,Foreign Keys,Django Queryset,简单场景,但不知道如何查询: 我们有一个商店模型和交易模型外键在事务模型上与存储相关 我想查询一个列表:仅限当天至少完成一笔交易的门店。应排除所有其他商店 Store.objects.filter(事务\uuu gt=0,事务\uu gt=2016-06-01创建日期) 当我尝试前一个查询时,我得到了一个很长的列表: [<Store: TrialStore>, <Store: TrialStore>, <Store: TrialStore>, ... ]
商店
模型和交易
模型<代码>外键在事务
模型上与存储
相关
我想查询一个列表:仅限当天至少完成一笔交易的门店。应排除所有其他商店
Store.objects.filter(事务\uuu gt=0,事务\uu gt=2016-06-01创建日期)
当我尝试前一个查询时,我得到了一个很长的列表:
[<Store: TrialStore>, <Store: TrialStore>, <Store: TrialStore>, ... ]
交易
型号:
class Store(models.Model):
status = models.IntegerField(choices=status_choices, default=ACTIVE_STATUS)
legal_name = models.TextField(verbose_name='Legal Name')
mobile_number = PhoneNumberField(blank=True)
email_address = models.EmailField(blank=True)
class Transaction(models.Model):
store = models.ForeignKey(Store)
date_created = models.DateTimeField(auto_now_add=True, verbose_name='Created')
status = models.IntegerField(choices=status_choices)
这个怎么样
Store.objects.filter(
transaction__gt=0,
transaction__date_created__year='2016',
transaction__date_created__month='06',
transaction__date_created__day='01'
)
在您的查询中,您说的是“给我所有自2016.06.01以来有交易的门店”。通过我的查询,“给我所有当天有交易的门店”您可以在查询时将datetime字段转换为:
Store.objects.filter(transaction__date_created__date=Date(2016, 1, 1))
你应使用:
你能展示一下你的模型吗?即使我真的在查询“自2016.06.01以来”,我不应该只得到一个结果吗?从那时起,只有一家商店一直在进行交易。不是三个。
Store.objects.filter(transaction__gt=0,
transaction__date_created__gt='2016-06-01').distinct()