2016-08-25 9 views
0

DjangoとDRFを1ヶ月前に開始しましたが、この部分に固執しています...ユーザーの主キーを含むAndroidデバイスからJSONを取得してデータを保存しますユーザーを修正します。最近私はBlimpからJWTトークン認証を実装しました。それは魅力的なように機能しています。今私は(Androidから送信された)JSONのプライマリキーフィールドを削除し、そのログインしたユーザ(Android上)にデータを割り当てたいと思います。ここではいくつかのコードは次のとおりです。Django rest frameworkは特定のユーザーにPOSTデータを割り当てます

models.py

class Izdavatelji(models.Model): 
    user = models.ForeignKey(User, default=1) 
    name = models.CharField(max_length=100) 

class Obrazac(models.Model): 
    izdavatelj = models.ForeignKey(Izdavatelji, default='Izdavatelj') 
    local = models.CharField(max_length=100) 

serializers.py

class ObrazacSerializer(serializers.ModelSerializer):  
     class Meta: 
      model = Obrazac 
      fields = ('local', 'izdavatelj') 

DRFは指さserializes.pyにフィールドを追加する

class ObrazacList(generics.ListCreateAPIView): 
    queryset = Obrazac.objects.all() 
    serializer_class = ObrazacSerialize 
    permission_classes = (IsAuthenticated,) 
    authentication_classes = (JSONWebTokenAuthentication,) 

答えて

0
class ObrazacSerializer(serializers.ModelSerializer): 
     izdavatelj = serializers.PrimaryKeyRelatedField(read_only=True) 
     class Meta: 
      model = Obrazac 
      fields = ('local', 'izdavatelj') 

class ObrazacList(generics.ListCreateAPIView): 
    queryset = Obrazac.objects.all() 
    serializer_class = ObrazacSerializer 
    permission_classes = (IsAuthenticated,) 
    authentication_classes = (JSONWebTokenAuthentication,) 

    def perform_create(self, serializer): 
     izdavatelj = Izdavatelji.objects.get(user=self.request.user) 
     return serializer.save(izdavatelj=izdavatelj) 

をのviews.pyモデル関係a ListCreateAPIViewのperform_create(self, serializer)メソッドを上書きすると、その作業が完了したようです。

関連する問題