[英]Why do I keep getting Class ModelSerializer missing "Meta" attribute?
每当我尝试访问我的注册序列化程序的视图时,我都会不断地发现我错过了 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
我认为它在 class 元中的元(对象)行,它应该是:
class Meta:
model = User
fields = ['username', 'email', 'password', 'password_2',]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.