Я использую Django и Django Rest Framework с PostgreSQL. Мне нужно создать вычисляемое поле на модели, и мне нужно также упорядочить по полю. Я думал об использовании @property
декоратора для вычисляемого поля, но, насколько я знаю, я не могу добавить это «поле» в массив ordering_fields
. Мой вопрос - что будет правильным способом сделать это?
Должно быть что-то вроде (частичное):
Модель-
class MyModelViewSet(models.Model):
due_date = models.DateField(null=True, blank=True)
final_due_date = models.DateField(null=True, blank=True)
@property
def due_date_diff(self):
if self.final_due_date:
return self.final_due_date - due_date
else:
return due_date - date.today()
В представлении Iхотел бы сделать что-то вроде:
class MyModelViewSet(viewsets.ModelViewSet):
serializer_class = MyModelSerializer
ordering_fields = tuple(serializer_class.Meta.fields + due_date_diff)