您将如何使用经过身份验证的用户作为上下文对象来实现通用视图?
How would you implement a Generic view with the authenticated user as the context object?
假设我有一个自定义路由 /some-route
,没有 url 参数,所以它不会有 /some-route/<user-id>
。
我想创建一个通用视图,它将使用经过身份验证的用户作为上下文对象。这就是我的做法,但我认为可能有更好的方法。
UserDetail(DetailView):
def get_object(self, queryset=None):
return self.request.user
我能想到的最大问题是它期望 pk kwarg 从路线中过去。我不想指定任何路由参数。有任何想法吗? Ty.
您建议的 class 可以正常工作。
class UserDetail(DetailView):
def get_object(self, queryset=None):
return self.request.user
这是详细视图 get_object
方法,他们希望主键是 url 模式中的命名参数。这不是问题,因为您已经覆盖了它。
另一个建议是使用 LoginRequiredMixin
,这样用户只能在登录时访问视图。
假设我有一个自定义路由 /some-route
,没有 url 参数,所以它不会有 /some-route/<user-id>
。
我想创建一个通用视图,它将使用经过身份验证的用户作为上下文对象。这就是我的做法,但我认为可能有更好的方法。
UserDetail(DetailView):
def get_object(self, queryset=None):
return self.request.user
我能想到的最大问题是它期望 pk kwarg 从路线中过去。我不想指定任何路由参数。有任何想法吗? Ty.
您建议的 class 可以正常工作。
class UserDetail(DetailView):
def get_object(self, queryset=None):
return self.request.user
这是详细视图 get_object
方法,他们希望主键是 url 模式中的命名参数。这不是问题,因为您已经覆盖了它。
另一个建议是使用 LoginRequiredMixin
,这样用户只能在登录时访问视图。