2017-03-24 20 views
0

私はdjango-rest-frameworkを使用しています。 私のアプリのすべてのモデルにはUserフィールドがあり、このフィールドに現在のユーザーへのリンクを書きたいと思います。 ユーザオブジェクトをモデルに渡すにはどうすればよいですか? SerializerClassでUser linkを書くのに疲れましたが、これは最善の解決策ではないと思います。ビューでDjangoモデルにカスタムコンテキストを渡す

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

モデル:

class Tracker(models.Model): 
    serial_id = models.PositiveIntegerField(unique=True) 
    created_by = models.ForeignKey(MyUser) 
+0

あなたの現在のコードを共有してください。 –

+0

コードを共有しました – Mike

+0

'user'オブジェクトをモデルに渡すとどういう意味ですか? –

答えて

0

あなたがに持っていけません。 DRFはあなたのためにそれを行うことができます。 As here

あなたは、私は多くのコードを自分で書いて、DRFの能力に依存することなく、非常に単純な実装を共有するように傾斜していますあなたの完全なコードを共有していないので、次のとおりです。

from rest_framework import generics 
class MyView(generics.CreateAPIView): 
    queryset = Tracker.objects 
    serializer_class = TrackerSerializer #Assuming that this is your serializer 

    def post(self , request , *args , **kwargs): 
     return self.create(request , *args , **kwargs) 

DRF自体はの世話をします関係。このコードはauthenticatonが設定されていることを前提としているため、request.userAnonymous Userではありません。汎用ビューからログインしているユーザーをつかむために

0

、あなたがself.request.userを使用する必要があります。

ビューで:

def perform_create(self, serializer): 
    serializer.save(created_by=self.request.user) 
関連する問題