Python 如何使用Django';主页的DetailView(或某些内置视图类)?

Python 如何使用Django';主页的DetailView(或某些内置视图类)?,python,django,django-generic-views,detailview,Python,Django,Django Generic Views,Detailview,我正在Django中构建一个应用程序,我想为经过身份验证的用户设置一个主页 考虑到我想在页面中显示的细节是已识别用户的细节,我认为最好使用de-build。问题是,这个类需要通过URL接收目标实体的id作为十进制pk参数。但是,有关实体的信息在request.user中,我希望避免重复该信息,以免在URL中显示我的用户ID 我可以想象,在方法中获得请求就可以了,但它不需要参数 这可能吗?这是个好主意吗?是否有我可能缺少的替代方案?详细视图只需要pk或slug来获取对象。如果覆盖get\u对象,则

我正在Django中构建一个应用程序,我想为经过身份验证的用户设置一个主页

考虑到我想在页面中显示的细节是已识别用户的细节,我认为最好使用de-build。问题是,这个类需要通过URL接收目标实体的id作为十进制pk参数。但是,有关实体的信息在
request.user
中,我希望避免重复该信息,以免在URL中显示我的用户ID

我可以想象,在方法中获得
请求
就可以了,但它不需要参数


这可能吗?这是个好主意吗?是否有我可能缺少的替代方案?

详细视图只需要
pk
slug
来获取对象。如果覆盖
get\u对象
,则不需要该对象。在
get\u object
方法中,您可以使用
self.request.user
访问用户

最后,如果视图使用登录用户,则可以使用
LoginRequiredMixin
确保只有登录用户才能访问视图

from django.contrib.auth.mixins import LoginRequiredMixin

class MyDetailView(LoginRequiredMixin, DetailView):
    ...
    def get_object(self):
        return self.request.user

DetailView
只需要
pk
slug
来获取对象。如果覆盖
get\u对象
,则不需要该对象。在
get\u object
方法中,您可以使用
self.request.user
访问用户

最后,如果视图使用登录用户,则可以使用
LoginRequiredMixin
确保只有登录用户才能访问视图

from django.contrib.auth.mixins import LoginRequiredMixin

class MyDetailView(LoginRequiredMixin, DetailView):
    ...
    def get_object(self):
        return self.request.user