Я пытаюсь частично обновить запись, используя (partial = True) через мой сериализатор, однако, когда я смотрю на инструкцию sql update, она показывает, что все поля обновляются когда отправляется только подмножество полей.Django REST Serializer - Частичное обновление по-прежнему обновляет полную запись
class Setting(models.Model):
comments_enabled = models.BooleanField(default=True)
visibility = models.CharField(max_length=50, choices=VISIBILITIES,
blank=False, null=False,
default=VISIBILITY_CHOICE_PARTICIPANTS)
modified = models.DateTimeField(auto_now=True, blank=True, null=True)
class SettingsSerializer(serializers.ModelSerializer):
class Meta:
model = Setting
fields = ('id', 'comments_enabled', 'visibility', 'modified')
class SomeSerializer(serializers.ModelSerializer):
def update(self, instance, validated_data):
settings_serializer = SettingsSerializer(instance.settings, data=validated_data.get('settings'), partial=True)
settings_serializer.is_valid(raise_exception=True)
settings_serializer.save()
я в два раза проверил, что validated_data словарь передается в имеет только одно поле.
Я использую DRF 3.3 и Django 1.9
Какие поля обновляются? Mabe некоторые поля написаны в методе сохранения – ilse2005
Можете ли вы опубликовать свою модель? – ilse2005
@ ilse2005 все поля обновляются. Я также разместил свою модель. – koeder