python - Django - 查询给出一列不等于同一模型中另一列的行

标签 python django django-models django-queryset

我的模型有 3 个字段

class Table(models.Model):
    in_time = models.DateTimeField(null=True, blank=True) 
    actual_time = models.DateTimeField(null=True, blank=True)

我想以这种方式获取结果:

select * from Table where in_time > '2013-12-31 00:00:00' and in_time != actual_time

谁能帮我完成这个

result = Table.objects.filter(in_time__gte = '2013-12-31 00:00:00')

最佳答案

您要搜索的是:

https://docs.djangoproject.com/en/dev/topics/db/queries/#filters-can-reference-fields-on-the-model

解决方案:

from django.db.models import F
from datetime import datetime

min_date = datetime(2013,12,31)
result = Table.objects.filter(in_time__gte=min_date).\
exclude(in_time__eq=F('actual_time'))

关于python - Django - 查询给出一列不等于同一模型中另一列的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21022626/

相关文章:

python - 使用 OneToOneField 时 Django 模型 u'id' 发生冲突

django 媒体 url 未在 500 内部服务器错误模板中解析

Django Rest 序列化器 : Reverse relationships

Django 字母数字 CharField

python - 洗牌一个共同的第二个元素的所有列表

python - 如何在 python 中获取打开文件的 win32 句柄?

python - Python Flask Web 服务中带有回调的长异步计算

python - 如何在单个字段中读取带有多个引号分隔符的 csv?

django - Django 模型中的数据数组

python - 将常见的 date_added、date_modified 添加到 Django 中的许多模型的最佳方法