我用另一个函数包装了django.contrib.auth.views.logout
以添加其他行为。这是我的新logout_page:在Django中添加代码以注销视图的正确方法
views.py
from django.contrib.auth import logout
def logout_page(request, *args, **kwargs):
from django.utils import timezone
user = request.user
profile = user.get_profile()
profile.last_logout = timezone.now()
profile.save()
logout(request, *args, **kwargs)
和
urls.py
(r'^logout/$', 'main.views.logout_page', {'next_page': '/'})
但我发现了以下错误:
logout() got an unexpected keyword argument 'next_page'
我不确定为什么是'nex t_page'当注销包含** kwargs时的一个意外的参数,据我所知,从django.contrib.auth注销应该包含这样的参数。从来源:
https://github.com/django/django/blob/master/django/contrib/auth/views.py
def logout(request, next_page=None,
template_name='registration/logged_out.html',
redirect_field_name=REDIRECT_FIELD_NAME,
current_app=None, extra_context=None):
...
我该如何解决这个问题?
哦,你是对的。我没有收到错误。我想我正在使用正确的导入,除了在我看来。谢谢! – 2012-08-05 05:24:30