class Customer(models.Model):
name = models.CharField(max_length=200)
# ..
class CustomerTicket(models.Model):
customer = models.OneToOneField(Customer)
date = models.DateTimeField(auto_now_add=True)
# ..
我要查询all顾客。并且,如果在日期范围内有一张票,则为每个客户添加其票 - 因此,只有在给定的日期范围内,我才会获取票对象,否则票字段将为空。
尝试这个:
from django.db import models
customers = Customer.objects.select_related('customerticket').annotate(
ticket=models.Case(models.When(models.Q(customerticket__date__gt=date1) & models.Q(customerticket__date__lt=date2), then=models.F('customerticket')))
)
你会得到ticket
作为计算域。请注意,当引用关系字段(例如ForeignKey或OneToOneField)时,F()返回主键值而不是模型实例,这意味着您的ticket
字段将具有主键的值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)