我目前正在努力将邮递员应用程序集成到我自己的网站中。当您想要访问邮递员的收件箱时,您需要登录.urls.py中的代码是
url(r'^inbox/(?:(?P<option>'+OPTIONS+')/)?$', InboxView.as_view(), name='inbox')
检查您是否已登录的代码片段在此处:
class FolderMixin(NamespaceMixin, object):
http_method_names = ['get']
@login_required_m
def dispatch(self, *args, **kwargs):
return super(FolderMixin, self).dispatch(*args, **kwargs)
def get_context_data(self, **kwargs):
...
class InboxView(FolderMixin, TemplateView):
folder_name = 'inbox'
view_name = 'inbox'
template_name = 'postman/inbox.html'`
现在我的问题是request.user.is_authenticated
没有传递到上面的get_context_data(self, **kwargs)
。例如,在我的base.html模板中,下面将显示hihihihi:
{% if request.user.is_authenticated %}
hihihihi
{% endif %}
意味着用户实际上已经过身份验证。但是,当我在get_context_data
中的class FolderMixin
函数中测试时,如下所示:
def get_context_data(self, **kwargs):
...
if self.request.user.is_authenticated():
print("user is authenticated")
print(self.request.user)
&#34;用户已通过身份验证&#34;不打印,self.request.user
返回AnonymousUser
。所以我的问题是为什么request.user没有传递给self.request.user,我该如何解决这个问题?
答案 0 :(得分:0)
我认为你的问题是扩展类的顺序,试试这个:
class InboxView(TemplateView, FolderMixin):
...