Python 为什么我总是让类ModelSerializer丢失;Meta";属性

Python 为什么我总是让类ModelSerializer丢失;Meta";属性,python,django,django-rest-framework,django-serializer,Python,Django,Django Rest Framework,Django Serializer,每当我尝试访问我的注册序列化程序的视图时,我总是发现我缺少Meta属性,即使它在那里。我试着对代码做了一些修改,但似乎不起作用,所以很明显我遗漏了一些东西 为什么会这样 这是序列化程序: class UserRegistrationSerializer(serializers.ModelSerializer): username = serializers.CharField( required=True, validators=[UniqueValidato

每当我尝试访问我的注册序列化程序的视图时,我总是发现我缺少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 UserRegistrationSerializer(serializers.ModelSerializer):
username=serializers.CharField(
必需=真,
validators=[UniqueValidator(queryset=User.objects.all())]
)
email=serializers.ModelSerializer(
必需=真,
validators=[UniqueValidator(queryset=User.objects.all())]
)
密码=serializers.CharField(
必需=真,
label=“Password”,
样式={'input_type':'password'}
)
密码_2=serializers.CharField(
必需=真,
label=“确认密码”,
样式={'input_type':'password'}
)
类元(对象):
模型=用户
字段=['username'、'email'、'password'、'password_2',]
def验证_密码(自身,值):
如果len(值)<8:
引发序列化程序。验证错误(
“密码长度应至少为8个字符。”)
返回值
def验证密码2(自身,值):
data=self.get_initial()
password=data.get('password')
如果输入密码!=价值:
引发序列化程序。ValidationError(“密码不匹配”)
返回值
def validate_用户名(自身,值):
如果User.objects.filter(用户名=值).exists():
引发序列化程序。ValidationError(“用户名已存在。”)
返回值
def创建(自我验证的_数据):
用户数据={
“用户名”:已验证的_数据。获取('username'),
“电子邮件”:已验证的_数据。获取(“电子邮件”),
“密码”:已验证的_数据。获取('password'),
}
user=user.objects.create\u user(
数据=用户数据,
site=获取当前站点(self.context['request'])
)
返回已验证的数据
我认为这是Meta类中的Meta(object)行,应该是:

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

谢谢你的回答。不幸的是,这似乎没有改变任何事情。您好,请添加完整的错误消息和您使用序列化程序的视图