Serializer无法添加额外数据

时间:2018-05-25 13:54:06

标签: python django django-rest-framework

在django rest框架中,我试图在ModelSerializer中添加一个具有一些自定义功能的对象。

我希望其中一个字段设置为self.request.user,我有以下视图:

class GigSubmitView(generics.CreateAPIView):
    permission_classes = (ProviderRW,)
    serializer_class = serializers.GigSubmitSerializer
    queryset = models.Gig.objects

    def perform_create(self, serializer):
        serializer.save(provider=self.request.user)

然而,这似乎并不是正确的答案。我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

您不需要覆盖执行create方法来访问序列化程序中的请求对象。

您有两个选择:

  1. 使用serializer.context [' request']访问序列化程序中的请求对象
  2. 默认情况下,会在所有通用视图中插入

    请求对象。

    http://www.django-rest-framework.org/api-guide/serializers/#including-extra-context

    1. 您可以使用当前用户默认方法设置当前用户
    2. http://www.django-rest-framework.org/api-guide/validators/#currentuserdefault