每当我试图访问我的注册序列化程序的视图时,我总是得到缺少Meta属性的消息,尽管它就在那里。我试着对代码做了一些修改,但它似乎不起作用,所以它显然是我遗漏的东西。
为什么会发生这种情况?
这是序列化程序:
class UserRegistrationSerializer(serializers.ModelSerializer):
username = serializers.CharField(
required=True,
validators=[UniqueValidator(queryset=User.objects.all())]
)
email = serializers.ModelSerializer(
required=True,
validators=[UniqueValidator(queryset=User.objects.all())]
)
password = serializers.CharField(
required=True,
label="Password",
style={'input_type': 'password'}
)
password_2 = serializers.CharField(
required=True,
label="Confirm Password",
style={'input_type': 'password'}
)
class Meta(object):
model = User
fields = ['username', 'email', 'password', 'password_2',]
def validate_password(self, value):
if len(value) < 8:
raise serializers.ValidationError(
"Password should be at least 8 characters long.")
return value
def validate_password_2(self, value):
data = self.get_initial()
password = data.get('password')
if password != value:
raise serializers.ValidationError("Passwords doesn't match.")
return value
def validate_username(self, value):
if User.objects.filter(username=value).exists():
raise serializers.ValidationError("Username already exists.")
return value
def create(self, validated_data):
user_data = {
'username': validated_data.get('username'),
'email' : validated_data.get('email'),
'password': validated_data.get('password'),
}
user = User.objects.create_user(
data=user_data,
site=get_current_site(self.context['request'])
)
return validated_data发布于 2021-04-26 08:19:34
我认为它是meta类中的Meta(object)行,它应该是:
class Meta:
model = User
fields = ['username', 'email', 'password', 'password_2',]https://stackoverflow.com/questions/67259367
复制相似问题