【发布时间】:2021-06-24 11:59:34
【问题描述】:
我正在尝试向使用序列化程序 UserSerializer 继承 AbstractUser 的模块 User 发出发布请求,但我收到错误“collections.OrderedDict”对象在字段“PhoneNumber”中不可调用。 序列化器:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model= User
fields="__all__"
def save(self, **kwargs):
user = User(
username = self.validated_data.get('username'),
first_name =self.validated_data.get('first_name'),
last_name = self.validated_data.get('last_name'),
email=self.validated_data.get('email'),
Address=self.validated_data.get('Address'),
PhoneNumber=self.validated_data('PhoneNumber'))
user.save()
用户模型:
class User(AbstractUser):
Address=models.TextField(blank=True,null=True)
PhoneNumber = models.CharField(max_length=15, blank=True,verbose_name='PhoneNumber')
cdNumber = models.CharField(max_length=16, blank=True,verbose_name='cdNumber')
cdDate=models.DateField(blank=True,null=True,verbose_name='cdDate')
cdName = models.CharField(max_length=16, blank=True,verbose_name='cdName')
def __str__(self):
return self.first_name+" "+self.last_name
【问题讨论】:
-
我猜
self.validated_data('PhoneNumber')应该是self.validated_data.get('PhoneNumber'),因为这就是你处理所有其他值的方式。你错过了get电话。
标签: python django django-models django-rest-framework