如何在 APIView 中附加 ForeignKey 值?

How to attach a ForeignKey value in an APIView?

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

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

考虑以下代码:

#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 字段的正确方法是什么?

我认为最适合您的方法是覆盖 perform_create 方法。

class CreateModel(generics.CreateAPIView):

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