我会尽量保持简洁。我有以下查询:
organisation_survey_results = OrganisationSurveyResult.objects.filter(
user=user
).order_by('survey', 'created_date')
这也会产生类似的结果:
organisation_survey_results = OrganisationSurveyResult.objects.filter(
user=user
).order_by(
'survey__id',
'-created_date',
).distinct('survey__id',)
在上面,我根据用户匹配进行过滤。一切都很好。我已返回该用户的 5 条记录。
现在,如前所述,每条记录都带有以下内容attributes
和attribute
“(链?)”:
独特slug
属性:
organisation_survey_result.organisation_survey.survey.slug
不可变(不变,创建时写入一次)created_date
属性:
organisation_survey_result.created_date
对于这五条记录,如果我遍历它们,我有:
django_1 | food
django_1 | 2019-08-12 15:45:49.384071+00:00
django_1 | drink
django_1 | 2019-08-12 15:45:49.390939+00:00
django_1 | politics
django_1 | 2019-08-12 15:45:49.397714+00:00
django_1 | money
django_1 | 2019-08-12 15:45:49.406612+00:00
django_1 | food
django_1 | 2019-08-13 11:26:55.831903+00:00
如您所见,我有两条记录,其中属性organisation_survey.survey.slug
withfood
出现两次。对于给定的用户,这很好。 记录可以并且将在其他时间相互取代。
我的问题:
有没有办法可以在查询中过滤掉这些记录?(为了提高性能效率)...我希望能够在QuerySet
级别上执行此操作,以减少对数据的压力serialization
。
版本:
`Django==2.2.1`
`djangorestframework==3.9.3`
数据库引擎:
`PostgreSQL`