Как передать данные сериализаторам в django

#python #django #django-rest-framework

Вопрос:

Я хочу передать идентификатор пользователя из представления в сериализатор, у меня есть модельный ответ

 class Answer(models.Model) :    text = models.CharField(max_length=500)  question_id = models.CharField(max_length=25)  user_id = models.CharField(max_length=25, default=1)  

Это мой сериализатор

 class CreateAnswer(generics.CreateAPIView) :   def get_serializer_context(self):  context = super().get_serializer_context()  context["id"] = self.request.user.id  return context   serializer_class = AnswerQuestionSerializer  queryset = Answer.objects.all()  

Что мне нужно написать в своем представлении, чтобы взять идентификатор пользователя и создать модель с этим идентификатором пользователя ?

Ответ №1:

Вы можете переопределить perform_create метод и передать user_id поле save методу сериализатора.

 class CreateAnswerView(generics.CreateAPIView) :  serializer_class = AnswerQuestionSerializer   def perform_create(self, serializer):  serializer.save(user_id=self.request.user.id)  

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

1. Спасибо! Имеется ли это в виду ?

2. @ArslanYersain Да, это имеется в виду.