我需要设置一些字段(这些字段在请求中不会以 JSON 形式出现。如何使用 Django REST 框架执行此操作。
serializer = GoalSerializer(data=request.DATA)
serializer.status = 'I' ##IS THIS RIGHT????????????????
serializer.journal = id
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
我这样做是因为状态和日志(这是外键字段)是必需的。但总是得到400响应。这是设置这些字段的正确方法吗?
最佳答案
您想要访问:
serializer.object
这是您在调用时要保存到数据库的对象:
serializer.save()
因此,如果您在将模型对象保存到数据库之前在模型对象上设置额外的字段,那么您需要执行以下操作:
serializer.object.status = "I"
serializer.object.journal = id
关于python - Django REST框架在调用serializer.isValid()之前指定一些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25085664/