validated_data 中的 Django 序列化程序更新方法密钥错误
Django serializer update method key error in validated_data
我正在使用 django rest 框架为多个应用程序提供 api。与这些应用程序共享的单个模型。每个应用程序都在使用一些其他应用程序没有使用的字段。我必须在序列化程序上编写更新方法,并根据从这些应用程序收到的字段值采取行动。当我编写更新方法时,万一 django 找不到任何密钥,它就会抛出错误。让我们看看代码:
型号:
class TaskChecker(models.Model):
taskName=models.CharField(max_length=50)
notified = models.BooleanField (default=False)
isDeleteRequest = models.BooleanField (default=False)
isDeactivateMe = models.BooleanField (default=False)
isActive = models.BooleanField (default=False)
class TaskSerializer(serializers.ModelSerializer):
class Meta:
model=TaskChecker
fields='__all__'
def update(self, instance, validated_data):
isDeleteRequest = validated_data['isDeleteRequest']
do some task
isActive= validated_data['isActive']
do some task
现在的情况是我会得到 validated_data['isDeleteRequest'] 或 validated_data['isActive']。在那种情况下,我得到关键错误。如何解决这个问题?如果我当时没有拿到钥匙,我应该不会出错。请帮忙。非常感谢....
在 TaskSerializer 中改用 dict get 方法。
class TaskSerializer(serializers.ModelSerializer):
class Meta:
model=TaskChecker
fields='__all__'
def update(self, instance, validated_data):
isDeleteRequest = validated_data.get('isDeleteRequest', False)
do some task
isActive= validated_data.get('isActive', False)
do some task
我正在使用 django rest 框架为多个应用程序提供 api。与这些应用程序共享的单个模型。每个应用程序都在使用一些其他应用程序没有使用的字段。我必须在序列化程序上编写更新方法,并根据从这些应用程序收到的字段值采取行动。当我编写更新方法时,万一 django 找不到任何密钥,它就会抛出错误。让我们看看代码: 型号:
class TaskChecker(models.Model):
taskName=models.CharField(max_length=50)
notified = models.BooleanField (default=False)
isDeleteRequest = models.BooleanField (default=False)
isDeactivateMe = models.BooleanField (default=False)
isActive = models.BooleanField (default=False)
class TaskSerializer(serializers.ModelSerializer):
class Meta:
model=TaskChecker
fields='__all__'
def update(self, instance, validated_data):
isDeleteRequest = validated_data['isDeleteRequest']
do some task
isActive= validated_data['isActive']
do some task
现在的情况是我会得到 validated_data['isDeleteRequest'] 或 validated_data['isActive']。在那种情况下,我得到关键错误。如何解决这个问题?如果我当时没有拿到钥匙,我应该不会出错。请帮忙。非常感谢....
在 TaskSerializer 中改用 dict get 方法。
class TaskSerializer(serializers.ModelSerializer):
class Meta:
model=TaskChecker
fields='__all__'
def update(self, instance, validated_data):
isDeleteRequest = validated_data.get('isDeleteRequest', False)
do some task
isActive= validated_data.get('isActive', False)
do some task