【发布时间】:2014-04-04 15:28:11
【问题描述】:
我试图在保存用户想要插入的对象之前设置一些字段。例如,如果用户想创建一个新实例,在保存它之前,我想将字段 owner 设置为 request.user,然后从父级调用 create 方法。我通过以下代码实现了这一点:
class ClassView(viewsets.ModelViewSet):
queryset = ModelClass.objects.all()
serializer_class = ModelClassSerializer
def create(self, request, pk = None):
if ModelClass.objects.filter(pk = request.user.id):
return Response({'detail' : "This user is already inserted" }, status = status.HTTP_401_UNAUTHORIZED)
return super(ClassView, self).create(request, pk = None)
def pre_save(self, obj):
obj.user_id = ModelClass.objects.get(pk = self.request.user.id)
也可能是我想根据一些来自 POST 请求的值的计算来设置模型的属性(这些值在序列化程序中作为字段建立)。
pre_save 解决方案是正确的方法还是我错过了什么?
提前致谢。
【问题讨论】:
标签: django django-rest-framework