Данные, добавленные в запрос из Django ModelViewSet, не отражаются в сериализаторе
Я пытаюсь загрузить данные в модель, используя метод update_or_create. Для этого я добавил два поля в request.data на лету. Но я не получаю эти поля в методе create в сериализаторе
views.py
class TestMemberView(ModelViewSet):
queryset = TestMembers.objects.order_by('-date_time_viewed')
serializer_class = TestMemberSerializer
def create(self, request, *args, **kwargs):
request.data["user_id"] = 123
request.data['user_name'] = test_user
return super().create(request, *args, **kwargs)
serializer.py
class TestMemberSerializer(serializers.ModelSerializer):
view_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M:%S')
class Meta:
model = TestMembers
fields = ("member_first_name", "member_last_name", "view_time",
"user_name","user_id",)
def create(self, validated_date):
user_id = validated_date.pop('user_id')
member, _ = TestMembers.objects.update_or_create(user_id=user_id, defaults={
"view_time": timezone.now()}, **validated_date)
return member
тело запроса:
{
"member_first_name": "test_name",
"member_last_name": "test_name"
}
error:
{
"errors": [
{
"error_level": "ERROR",
"system_error": null,
"reason": null,
"user_error": {
"user_name": [
"This field is required."
],
"view_time": [
"This field is required."
]
}
}
]
}
Пожалуйста, помогите мне решить эту проблему. Как я могу получить те поля в сериализаторе, которые я добавил в представление.