Джанго Отдых.Упорядочение по рассчитанному полю модели - PullRequest
0 голосов
/ 15 октября 2018

Я застрял с заказом на вычисляемом поле.

Допустим, моя модель выглядит следующим образом:

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: ...

Есть ли способ применитьзаказать в расчетное поле?Спасибо

1 Ответ

0 голосов
/ 15 октября 2018

Вы должны аннотировать дополнительное поле

class SomeViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
...
ordering_fields = ('calculatedField',)

def get_queryset(self):
   return self.queryset.annotate(other function)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...