在使用django rest框架时,我有一种方法可以根据输入的表单数据更新模型。你知道吗
你知道吗拼写序列化程序.py地址:
from rest_framework import views, serializers, status
from .models import Spell
class SpellSerializer(serializers.ModelSerializer):
# Name = serializers.CharField()
class Meta:
model = Spell
# fields = ('id', 'owner', 'Name', 'School', 'Subschool')
fields = '__all__'
def create(self, validated_data):
user = None
request = self.context.get("request")
if request and hasattr(request, "user"):
user = request.user
validated_data['owner'] = user.id
return Spell.objects.create(**validated_data)
def update(self, instance, validated_data):
instance.Name = validated_data.get('Name', instance.Name)
instance.save()
return instance
有没有一种方法可以让模型上的所有字段在字段名称都对齐的情况下用经过验证的\u数据进行更新?(又名validated_data.Name
匹配instance.Name
,validated_data.Otherfield
与instance.Otherfield
相同,而不必显式列出所有字段。你知道吗
可以使用序列化程序的^{} 参数。在你看来:
如果没有提供其他字段,则不会引发错误。你知道吗
升级版
如果您的意思是不想指定
instance.somefield = validated_data['somefield']
,那么可以在序列化程序中使用以下语法:相关问题 更多 >
编程相关推荐