为什么我总是得到类模型序列化程序缺少"Meta"属性?



每当我试图访问注册序列化程序的视图时,我总是会发现我缺少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

我认为它是Meta类中的Meta(对象(行,应该是:

class Meta:
model = User
fields = ['username', 'email', 'password', 'password_2',]

相关内容

最新更新