假设我有一个有两个DateField
的模型:
class Event(models.Model):
start_date = models.DateField()
finish_date = models.DateField()
这允许我进行比较这些字段的查询,比如
ee=Event.objects.filter(finish_date=F('start_date'))
我可以处理日期的年份,比如
ee=Event.objects.filter(finish_date__year=2000)
但是当我尝试在F()
内使用相同的查找__year
时,如下所示:
ee=Event.objects.filter(finish_date__year=F('start_date__year'))
,失败:
FieldError: Cannot resolve keyword 'year' into field. Join on 'start_date' not permitted.
这样的行为有什么原因吗,或者它看起来像一个bug?你知道吗
我使用的是django1.11,我在https://docs.djangoproject.com/en/1.11/topics/db/queries/#using-f-expressions-in-filters中没有看到这样的限制。你知道吗
你试过这个吗?你知道吗
为什么
F('start_date__year')
不起作用?你知道吗从Django Doc,
因此,表达式
start_date__year
不是模型字段或注释列相关问题 更多 >
编程相关推荐