我坚持在计算字段上订购。
假设我的模型如下:
class Foo(models.Model):
fieldA = models.CharField()
fieldB = models.CharField()
@property
def calculatedField(self):
return someFunc(fieldA)
现在,我ViewSet
不能对calculatedField
进行订购,因此我在其中有以下代码:
class SomeViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
...
ordering_fields = ('calculatedField',)
...
但是当我尝试使用类似查询参数的订单
Method GET /someEndpoint/?ordering=calculatedField
我收到以下错误
Cannot resolve keyword 'calculatedField' into the field. Choices are: ...
有没有一种方法可以应用于对计算字段的定单?谢谢
答案 0 :(得分:1)
您必须注释额外的字段
class SomeViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
...
ordering_fields = ('calculatedField',)
def get_queryset(self):
return self.queryset.annotate(other function)