gpt4 book ai didi

django 查询所有相关集的过滤?

转载 作者:行者123 更新时间:2023-12-02 09:30:41 25 4
gpt4 key购买 nike

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)
# ..

我想查询所有客户。并且,如果在日期范围内有一张票,则为每个客户添加其票 - 因此,仅当票在给定的日期范围内时,我才会获取票对象,否则票字段将为空。

最佳答案

试试这个:

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 字段将具有主键值。

关于django 查询所有相关集的过滤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49792062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com