Django queryset验证字段是否存在

Django queryset验证字段是否存在,django,django-queryset,Django,Django Queryset,我想实现一个定制的排序后端(使用rest\u framework.filters.OrderingFilter),基本上我想先检查我的queryset的字段是否存在,然后再过滤它,而不评估queryset 差不多 如果查询集可用字段(我的字段): queryset=queryset.order\u by(我的\u字段) 我无法尝试/除非,因为我不知道何时会评估我的查询集。我找到了一个解决方案,它适用于我的情况,但可能不包括某些边缘情况。而且也不是很优雅 def有_字段(queryset,字段)

我想实现一个定制的排序后端(使用rest\u framework.filters.OrderingFilter),基本上我想先检查我的queryset的字段是否存在,然后再过滤它,而不评估queryset

差不多

如果查询集可用字段(我的字段):
queryset=queryset.order\u by(我的\u字段)

我无法尝试/除非,因为我不知道何时会评估我的查询集。

我找到了一个解决方案,它适用于我的情况,但可能不包括某些边缘情况。而且也不是很优雅

def有_字段(queryset,字段):
model_fields=[queryset.model._meta.fields中f的f.name]
annotations=list(queryset.query.annotations.keys())
模型字段+注释中的返回字段

尽管按相关字段订购时,这不起作用