Вы можете переопределить метод update
сериализатора, чтобы обновлять только те поля, которые вам нужны.
class ABCSerializer(serializers.ModelSerializer):
def update(self, instance, validated_data):
instance.colB = validated_data.get('colB', instance.colB)
instance.colC = validated_data.get('colC', instance.colC)
# do nothing to instance.colA
instance.save()
return instance
class Meta:
model = ModelA
fields = ('colA', 'colB', 'colC',)
Или, если у вас много полей, и вы просто хотите пропустить обновление colA
, вы можете написать свойupdate
метод, подобный следующему:
def update(self, instance, validated_data):
validated_data.pop('colA') # validated_data no longer has colA
return super().update(instance, validated_data)
Подробнее о переопределении update
можно прочитать здесь: https://www.django -rest-framework.org / api-guide / serializers / # save-instances