如何在APIView中附加ForeignKey值?

时间:2016-11-21 14:03:20

标签: django django-models django-rest-framework django-serializer

我使用Django 1.10和Django Rest Framework构建应用程序。

我想知道"对"创建数据对象的方法,并在创建过程中将另一个对象作为外键附加。

请考虑以下代码:

#MODEL
class MyModel(models.Model):
  owner = models.ForeignKey(User)
  # other vars

#VIEW
class CreateModel(generics.CreateAPIView):
  queryset = MyModel.objects.all()
  serializer_class = MyModelSerializer

  def create(self, request, *args, **args):
    user = request.user # This User instance needs to be the ForeignKey to MyModel

问题:使用request对象中的数据填充模型ForeignKey字段的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

在我看来,最合适的方法是覆盖perform_create方法。

class CreateModel(generics.CreateAPIView):

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