【发布时间】:2015-05-18 23:01:35
【问题描述】:
我希望能够在触发 user_logged_out 信号时呈现不同的注销模板。我可以捕捉到信号并正确检查我的状况,并且我有一个带有命名 URL 的视图,它工作得很好,但我似乎无法渲染视图。
我已经尝试了其中的每一个,包括基于类的视图和函数视图,但无法让它们工作。使用 ipdb 我可以获得一个模板以在控制台中呈现,但无法找出返回它的正确方法/调用视图使其返回。想法?
@receiver(user_logged_out)
def my_logged_out_signal_handler(sender, request, user, **kwargs):
if user.has_condition:
# tried this
resolve(reverse('my_named_url', kwargs={'kwarg1': 'something'})).func(request, something)
# and this
render_to_response(resolve(reverse('my_named_url', kwargs={'kwarg1': something})).func(request, kwarg1=something).render())
# and this
render(MyClassView.as_view()(request, kwarg1=something))
# and this
return (resolve(reverse('my_named_url', kwargs={'kwarg1': something})).func(request, kwarg1=something).render())
# and this
return HttpResponse(resolve(reverse('my_named_url', kwargs={'kwarg1': something})).func(request, kwarg1=something).render())
【问题讨论】:
-
@dm03514 谢谢,但这行不通。我需要知道用户,这样我才能检查条件,注销后为时已晚。我需要挂钩信号才能知道他们是谁。
-
我宁愿在注销后保持会话干净。 auth.logout 执行 session.flush() (github.com/django/django/blob/stable/1.6.x/django/contrib/auth/…) 这似乎是我想继续做的事情。
-
@dm03514,实际上,我认为我可以使您的链接中的解决方案适用于我的情况。谢谢!
标签: django django-views