DRF CurrentUserDefault в serializer.update с запросом PATCH - PullRequest
0 голосов
/ 19 октября 2018

Учитывая, что сериализатор ниже PATCH запроса с {'description': 'product_3'} не включает user в проверенных данных.

Как можно добавить CurrentUserDefault() к проверенным данным, не вызывая .save(updated_by=request.user)?

class MySerializer(serializer.ModelSerializer):
    user = serializers.HiddenField(default=serializers.CurrentUserDefault())

    class Meta:
        model = Model
        fields = ('id', 'user', 'description')

    def create(self, validated_data):
        validated_data['created_by'] = validated_data.pop('user')
        return super().create(validated_data)

    def update(self, instance, validated_data):
        validated_data['updated_by'] = validated_data.pop('user')
        return super().create(instance, validated_data)

1 Ответ

0 голосов
/ 19 октября 2018

CurrentUserDefault()

def update(self, instance, validated_data):
    user = validated_data.pop('user', None)
    validated_data['updated_by'] = user if user else self.context['request'].user
    return super().update(instance, validated_data)
...