【发布时间】: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