Django Serializer с Websockets не работает из-за запроса и HyperLinkedModelSerializer
Я пытаюсь использовать websockets для отправки набора запросов на фронтенд с помощью сериализатора моделей.
Когда я тестирую это, я получаю следующее сообщение:
"HyperlinkedIdentityField" requires the request in the serializer context. Add context={'request': request} when instantiating the serializer.
Вот мой тестовый код фронтенда:
function websocket_test(){
ws.send(JSON.stringify({
action: "list",
request_id: new Date().getTime()
}))
}
Это мой сериализатор:
class InstructorSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model=Instructor
fields='__all__'
Это мой потребитель:
class Instructors_Consumer(
ListModelMixin,
RetrieveModelMixin,
PatchModelMixin,
UpdateModelMixin,
CreateModelMixin,
DeleteModelMixin,
GenericAsyncAPIConsumer):
queryset=Instructor.objects.all()
serializer_class=InstructorSerializer
Я не совсем понимаю, что происходит не так. В выдаваемой ошибке упоминается добавление контекстного ключевого слова при инстанцировании сериализатора; однако я не имею ни малейшего представления о том, зачем ему нужен запрос или где его инстанцировать.
Любая помощь будет очень признательна, поскольку я совершенно не понимаю, как решить эту проблему.
Спасибо.
Оказывается, ответ заключается в том, чтобы не использовать HyperlinkedModelSerializer и вместо него использовать ModelSerializer, чтобы он не использовал запрос на маршрутизацию url в сериализаторе.
Поздравления