Python 如何使用Django';主页的DetailView(或某些内置视图类)?
我正在Django中构建一个应用程序,我想为经过身份验证的用户设置一个主页 考虑到我想在页面中显示的细节是已识别用户的细节,我认为最好使用de-build。问题是,这个类需要通过URL接收目标实体的id作为十进制pk参数。但是,有关实体的信息在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对象,则
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