【发布时间】:2016-11-09 18:01:14
【问题描述】:
我正在尝试使用 F 对象查询 Django 模型,但没有得到所需的结果。 查询是:
Ticket.objects.exclude(lead__email=F('email')).count()
ORM 翻译成 SQL 为:
SELECT count(*) FROM "core_ticket" LEFT OUTER JOIN "core_lead" ON ("core_ticket"."lead_id" = "core_lead"."id") WHERE NOT ("core_lead"."email" = ("core_ticket"."email") AND "core_lead"."email" IS NOT NULL)
我的问题是 ORM 在 where 子句中添加了这个 AND "core_lead"."email" IS NOT NULL。这会影响我的结果,因为电子邮件字段中可能存在空值。
有没有办法避免这种额外的非空检查。
【问题讨论】:
标签: django django-models django-queryset