【发布时间】:2016-03-10 08:09:54
【问题描述】:
我正在尝试通过我的序列化程序使用 (partial=True) 部分更新记录,但是,当我查看 sql update 语句时,它显示所有字段都在更新,而只有一部分字段被提交。
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
【问题讨论】:
-
更新了哪些字段?可能有些字段是用 save 方法写的
-
你可以发布你的模型吗?
-
@ilse2005 正在更新所有字段。我也发布了我的模型。
-
我的回答对您有帮助吗?如果是,请接受。
标签: django serialization django-rest-framework