Django Rest API:使用令牌验证将当前用户添加到用户字段

时间:2018-02-23 09:21:06

标签: python django django-rest-framework jwt

要求:

List<ProfileClass>

我正在处理我的private void MenuItemProfile_Clicked(object sender, System.EventArgs e) { var profile = (ProfileClass)((View)sender).BindingContext; // Now you can use the 'profile' object to show the pop up. } ,我希望在创建对象时将当前用户添加到我的用户字段中,但它无法知道。

我在我的API Rest中使用Python 3.7 Django 2.0

我关注了这个问题:How to set current user to user field in Django Rest Framework?

但它似乎与我的代码无关。

我有 serializers.py 文件:

Django Rest API

我的 /Api/views.py 文件:

JWT Authentification

为了尝试我的API,我配置了一个pythonic文件,它与其他Web应用程序的工作相同。

此文件如下所示:

class IndividuCreateSerializer(serializers.ModelSerializer) :

    class Meta :
        model = Individu
        fields = [
            'Etat',
            'Civilite',
            'Nom',
            'Prenom',
            'Sexe',
            'Statut',
            'DateNaissance',
            'VilleNaissance',
            'PaysNaissance',
            'Nationalite1',
            'Nationalite2',
            'Profession',
            'Adresse',
            'Ville',
            'Zip',
            'Pays',
            'Mail',
            'Telephone',
            'Utilisateur',
            'Image',
            'CarteIdentite',
            ]

    def create(self, validated_data):
       obj = Individu.objects.create(**validated_data)
       Identity_Individu_Resume(self.context.get('request'), obj.id)
       return obj

我的对象创建良好,但我的用户字段为空。 我如何写这个以便将当前用户添加到用户字段?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以将当前用户直接传递给序列化程序在视图中的保存方法:

class IndividuCreateAPIView(CreateAPIView) :

   permission_classes = (IsAuthenticated,)
   authentication_classes = (JSONWebTokenAuthentication,)
   queryset = Individu.objects.all()
   serializer_class = IndividuCreateSerializer

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