如何使用django' s generic class DetailView
获取当前与用户相关的对象?使用基于函数的视图,我可以获得如下对象:
def foo(request):
friendProfile = get_object_or_404(request.user.profile.friends,username="admin")
使用详细视图的等价物是什么?我猜测它与get_object
或get_context_data
有关,但我无法完全理解这些文件。
谢谢。
答案 0 :(得分:3)
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)