比较django queryset中的两个字段

时间:2014-09-07 19:48:35

标签: mysql django

如何在Django ORM中执行以下SQL查询?

SELECT * FROM my_table WHERE date_added > date_created;

3 个答案:

答案 0 :(得分:3)

我猜你没有date_created可用作变量(正如@tttthomasssss所假设的那样)所以它会是这样的:

from django.db import models

YourTable.objects.filter(date_added__gt=models.F('date_created')

关于F表达式的文档:https://docs.djangoproject.com/en/dev/ref/models/expressions/#f-expressions

答案 1 :(得分:1)

您可以__gt使用>MyModel.objects.filter(date_added__gt=date_created)

请参阅querysets here的文档。

修改 如果date_created无法使用,那么@ Wolph的解决方案就是其中之一。

答案 2 :(得分:0)

你可以use F() expressions in queries这样:

MyModel.objects.filter(date_added__gt=F('date_created'))