首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我总是让类ModelSerializer缺少"Meta“属性?

为什么我总是让类ModelSerializer缺少"Meta“属性?
EN

Stack Overflow用户
提问于 2021-04-26 08:07:46
回答 1查看 90关注 0票数 0

每当我试图访问我的注册序列化程序的视图时,我总是得到缺少Meta属性的消息,尽管它就在那里。我试着对代码做了一些修改,但它似乎不起作用,所以它显然是我遗漏的东西。

为什么会发生这种情况?

这是序列化程序:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2021-04-26 08:19:34

我认为它是meta类中的Meta(object)行,它应该是:

代码语言:javascript
复制
class Meta:
   model = User
   fields = ['username', 'email', 'password', 'password_2',]
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67259367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档