«Не удается разрешить ключевое слово «создано» в поле» в новом представлении списка DRF

#django #django-rest-framework

#django #django-rest-framework

Вопрос:

Я создал новое представление списка в своем приложении Django REST Framework:

 class ColumnView(ListCreateAPIView):
    queryset = Column.objects.all()
    serializer_class = ColumnSerializer
    permission_classes = [IsAuthenticatedOrReadOnly]

    def perform_create(self, serializer):
        serializer.save(user=self.request.user)
  

Когда я пытаюсь получить к нему доступ, я получаю следующую ошибку:

Ошибка поля в / my / new / endpoint

Не удается разрешить ключевое слово «создано» в поле. Возможны следующие варианты: _order, fields, from, my, model

Нигде нет created поля в поле зрения — ни в ColumnSerializer , ни в модели Column Django, нигде. Трассировка стека тоже действительно непрозрачна — мое приложение нигде в нем не отображается. Что происходит?

Комментарии:

1. Было бы лучше, если бы вы могли показать свою модель и сериализатор

2. @MohammadFaisal, это вопрос с самостоятельным ответом, в котором модель и сериализатор оказываются неактуальными.

Ответ №1:

Вы включили разбивку курсора на страницы в своих настройках?

 REST_FRAMEWORK = {
    ...
    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.CursorPagination',
    ...
}
  

Обязательно внимательно прочитайте документы по CursorPagination:

Подробности и ограничения

Правильное использование разбивки на страницы на основе курсора требует небольшого внимания к деталям. Вам нужно подумать о том, в каком порядке вы хотите, чтобы схема была применена. По умолчанию используется порядок «-создано». Это предполагает, что в экземплярах модели должно быть поле метки времени «создано», и оно представит представление с разбиением на страницы в стиле «временной шкалы», в котором сначала отображаются самые последние добавленные элементы.

Другими словами, у вас не может быть всех трех из этих условий:

  • Использование разбивки курсора на страницы
  • … без указания порядка
  • … в модели без created поля

Комментарии:

1. Какое отношение к вопросу имеет курсор paginatin?

2. @MohammadFaisal, пожалуйста, обратите внимание, что это вопрос с самостоятельным ответом. Я документирую исправление, поскольку оно никоим образом не очевидно из сообщения об ошибке.