如何在“多对多”字段上注释特定值

时间:2019-07-19 15:21:58

标签: django

我在注释查询集时遇到麻烦。它具有多对多关系,在这种关系中,我只需要一个特定项目中的数据。

在字段上使用F对象时,我仅从此多对多字段中获取最后一个项目。我尝试过滤感兴趣的类型,但是得到了相同的结果。

In: anomalies.annotate(week=F('production_item__template__bacitem__bacs__printing_date')).values('week')
Out: [{'week': datetime.date(2019, 4, 23)}, {'week': datetime.date(2019, 4, 23)}, {'week': datetime.date(2019, 4, 23)}, {'week': datetime.date(2019, 4, 23)}]
In: anomalies.filter(production_item__template__bacitem__bacs__type__in=[BAC_TYPE.PRINTING, BAC_TYPE.LASER_CUTTING]).annotate(week=F('production_item__template__bacitem__bacs__printing_date')).values('week')
Out: [{'week': datetime.date(2019, 4, 23)}, {'week': datetime.date(2019, 4, 23)}, {'week': datetime.date(2019, 4, 23)}, {'week': datetime.date(2019, 4, 23)}]

我从printing_date中获得了最后一个bacs,而不是我过滤了'type'的那个。

0 个答案:

没有答案