[英]Django : 'collections.OrderedDict' object is not callable
I am trying to make a post request to module User which inherits AbstractUser using serializer UserSerializer, but I'm getting the error 'collections.OrderedDict' object is not callable on-field "PhoneNumber".我正在尝试使用序列化程序 UserSerializer 向继承 AbstractUser 的模块 User 发出发布请求,但我收到错误“collections.OrderedDict”object is not callable on-field“PhoneNumber”。 Serializer:
序列化器:
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()
User Model:用户 Model:
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
This这个
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'))
===
+ PhoneNumber=self.validated_data.get('PhoneNumber'))
@@@
user.save()
PS: I strongly recommend to use pythonic snake_cased
field names instead of PascalCased
ones, which are usually used for types. PS:我强烈建议使用
snake_cased
字段名称而不是PascalCased
字段名称,后者通常用于类型。
Or try to use single naming convention per class at least.. Because this isn't really appreciated:或者至少尝试使用每个 class 的单一命名约定.. 因为这并不是真正的赞赏:
last_name = self.validated_data.get('last_name'),
PhoneNumber=self.validated_data.get('Address'),
You can find more codestyle recommendations in PEP8您可以在PEP8中找到更多代码风格建议
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.