【发布时间】:2018-12-21 10:31:35
【问题描述】:
我正在尝试使用自定义的用户详细信息修改 UserDetailsSerializer,但是当服务器运行时,它会抛出“'用户'对象没有属性'用户'”的错误。我尝试了很多方法,但都没有奏效。
我的代码是:
mode.py
class userProfileModel(models.Model):
GENDER = [
('', ""),
('M', "Male"),
('F', "Female")
]
user = models.OneToOneField(User, related_name='userprofile', on_delete=models.CASCADE, default='')
age = models.DateField(auto_now_add=True)
gender = models.CharField(max_length=10, choices=GENDER, default='')
phone = models.IntegerField(default=0)
user_is_active = models.BooleanField(default=False)
def __str__(self):
return self.user.username
还有serializers.py
from rest_auth.serializers import UserDetailsSerializer
from rest_framework import serializers
from .models import userProfileModel
class Profile(serializers.ModelSerializer):
user = UserDetailsSerializer()
class Meta:
model = userProfileModel
fields = ('user',)
class UserDetailsSerializer(UserDetailsSerializer):
profile = Profile(many=True)
class Meta(UserDetailsSerializer.Meta):
fields = UserDetailsSerializer.Meta.fields + ('profile',)
read_only_fields = ('',)
还有settings.py
REST_AUTH_SERIALIZERS = {
'USER_DETAILS_SERIALIZER': 'app.serializers.UserDetailsSerializer',
}
当我运行这段代码时,它会抛出这个错误。
尝试在序列化程序 UserDetailsSerializer 上获取字段 profile 的值时出现 AttributeError。
序列化程序字段可能命名不正确,并且与 User 实例上的任何属性或键都不匹配。
原始异常文本是:“用户”对象没有属性“配置文件”。
【问题讨论】:
标签: python django django-rest-framework django-rest-auth