2017-08-13 7 views
1

djangoのgeneric class DetailViewを使用して現在のユーザー関連オブジェクトを取得するにはどうすればよいですか?関数ベースのビューを使用すると、次のようなオブジェクトを取得できます。djangoジェネリッククラスのdetailviewを使用してユーザー固有のオブジェクトを取得するには?

def foo(request): 
    friendProfile = get_object_or_404(request.user.profile.friends,username="admin") 

詳細ビューを使用して同等のものは何ですか?私はそれがget_objectまたはget_context_dataに関連するものだと推測していますが、私はその文書を完全に理解することはできません。

ありがとうございます。

答えて

2

requestは、クラスベースのビューの属性です。現在のユーザーを取得するには、self.request.userを使用する必要があります。

DetailViewでオブジェクトを取得するために使用されたクエリーセットを編集するためにget_querysetをオーバーロードします。

友人のモデルがどのように定義されているか正確にはわかりませんが、related_namefriend_ofに設定されたプロファイルを指す外部キーがあるとします。表示は次のようになります。

class FriendProfileDetail(DetailView): 
    model = Friend 
    def get_queryset(self): 
     return self.model.objects.filter(friend_of=self.request.user.profile) 
+0

私に例を挙げてもらえますか? – meowmeow

+0

応答は例で編集されました。 –

+0

優秀!ありがとう。 – meowmeow

関連する問題