如何在Django REST API中使用自定义APIView保存模型实例?

时间:2019-05-11 15:51:52

标签: django rest authentication django-rest-framework

我正在开发一个基于2个服务器的网站:Django(后),ReactJS(前); (为了方便起见,我将一些标题更改为抽象名称)

型号:

class Model(model.Model):
    attr1 = models.CharField(max_length=500)
    attr1 = models.CharField(max_length=500)
    ....
    **author = models.ForeignKey(UserModel, on_delete=models.CASCADE)**

自定义创建视图:

class ModelCreateAPI(APIView):
    def post(self, request):
        serializer = serializers.ModelSerializer(data=request.data)   
        if serializer.is_valid(raise_exception=True):
            model_saved = serializer.save()
        return Response({"success": "Model created successfully"})

序列化器:

class ModelSerializer(serializers.ModelSerializer):
    class Meta:
        model = Model
        fields = '__all__'

在我的React APP上,有一种形式发送HTTP请求,包括“用户令牌”,该请求存储在localStorage中。但是,模型的“作者”应为代表pk的整数。我设法将令牌转换为pk:

>>> from rest_framework.authtoken.models import Token
>>> Token.objects.get(key='token').user_id

这是执行此操作的有效方法吗? 您有什么建议? 如何通过以正确的author_id保存模型的方式实现HTTP POST请求?

0 个答案:

没有答案
相关问题