【问题标题】:Django rest framework: Id not returned when adding a new userDjango rest框架:添加新用户时没有返回Id
【发布时间】:2021-06-14 17:25:31
【问题描述】:

我是 Django 休息框架的新手。 我正在尝试注册一名新船员(阅读“新用户”)并获取他们的 ID。

我的views.py文件用于注册船员

 def register_crew(request):
        fields = ('id','phone','name','email','user_type','is_verified','is_active','password')
        serializer = UserSerializer(data=request.data,fields=fields)
        if serializer.is_valid():
            serializer.create_crew()
            content = {
                "status": True,
                "Http_response": status.HTTP_200_OK,
                "message": 'crew account created',
                "data": serializer.data
            }
        else:
            content = {
                "status": False,
                "Http_response": status.HTTP_400_BAD_REQUEST,
                "message": 'input errors',
                "errors": serializer.errors
            }
 
        return Response(content)

我的 create_crew 序列化程序

class UserSerializer(DynamicFieldsModelSerializer):
    class Meta:
        model = User
        fields = ('id','name','user_type','email','phone','password','is_verified','is_active') 
    def create_crew(self):
        reg = User(
            phone=self.validated_data['phone'],
        )

        reg.email = self.validated_data['email']
        reg.name = self.validated_data['name']
        reg.user_type = self.validated_data['user_type']
        reg.set_password(self.validated_data['password'])
        reg.save()
        return reg

我能够注册用户,但序列化程序不返回对象的 id。即使当我列出用户时,id 也是可见的。

我的回应

{
    "status": true,
    "Http_response": 200,
    "message": "crew account created",
    "data": {
        "name": "crewman1",
        "user_type": 3,
        "email": null,
        "phone": "123425",
        "password": "crew123"
    }
}

【问题讨论】:

    标签: python-3.x django django-rest-framework


    【解决方案1】:

    你必须返回id

    def create_view():
        ...
        ...
        return reg.id
    

    【讨论】:

    猜你喜欢
    • 2021-09-26
    • 2018-07-24
    • 2019-03-05
    • 2017-08-21
    • 2014-10-16
    • 2015-08-26
    • 2021-04-28
    • 2019-10-29
    • 1970-01-01
    相关资源
    最近更新 更多