#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, пожалуйста, обратите внимание, что это вопрос с самостоятельным ответом. Я документирую исправление, поскольку оно никоим образом не очевидно из сообщения об ошибке.