我正在使用django rest framework
我试图实现一个嵌套序列化程序的更新方法。如何正确实现嵌套序列化程序的更新方法?在
我正在尝试更新现有员工,但得到以下响应:
{
"user": {
"username": [
"A user with that username already exists."
]
}
}
我在序列化程序上实现了一个update方法,只是为了更新用户字段。在
^{pr2}$然后在视图中,我实现了以下内容:
class EmployeeDetailView(APIView):
permission_classes = [AllowAny]
# queryset = Employee.objects.all()
serializer_class = EmployeeUpdateSerializer
"""
Retrieve, update or delete a employee instance.
"""
def get(self, request, pk, format=None):
try:
employee = Employee.objects.get(pk=pk)
except Employee.DoesNotExist:
raise Http404
serializer = EmployeeUpdateSerializer(employee)
return Response(serializer.data, status=status.HTTP_200_OK)
def put(self, request, pk, format=None):
try:
employee = Employee.objects.get(pk=pk)
serializer = EmployeeUpdateSerializer(
employee, data=request.data)
except Employee.DoesNotExist:
raise Http404
# serializer = EmployeeUpdateSerializer(data=request.data)
if serializer.is_valid():
print(serializer.data)
serializer.update()
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
return Response(serializer.data, status=status.HTTP_200_OK)
如果用户名验证程序已经在验证用户名字段中存在,请检查用户名。在
通过向元类添加以下内容,可以在UserSerializer中删除此验证:
这是一个快速和肮脏的修复,因为如果您尝试用相同的用户名保存2个实例,它将导致数据库的完整性问题。在
相关问题 更多 >
编程相关推荐