2017-08-13 25 views
1

如何使用django的generic class DetailView获取当前用户相关对象?使用基于函数的观点,我能得到这样的对象:如何使用django泛型类detailview获取用户特定的对象?

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

什么是相当于使用详细信息视图?我猜这是与get_objectget_context_data有关,但我不能完全理解这些文件。

谢谢。

回答

2

request是基于类的视图的属性。要获得当前用户,您应该使用self.request.user

DetailView重载get_queryset来编辑用于获取对象的查询集。

我不知道你的朋友模型是如何定义的,但我们假设它有一个指向你的个人资料的外键,related_name设置为friend_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

相关问题