我django.contrib.auth.views.logout用另一个函数包装,以添加其他行为.这是我的新logout_page:
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)
Run Code Online (Sandbox Code Playgroud)
和
urls.py
(r'^logout/$', 'main.views.logout_page', {'next_page': '/'})
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
logout() got an unexpected keyword argument 'next_page'
Run Code Online (Sandbox Code Playgroud)
当logout包含**kwargs时,我不确定为什么'next_page'是一个意外的参数,据我所知,从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):
...
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
你说错了logout.
from django.contrib.auth import logout
Run Code Online (Sandbox Code Playgroud)
应该
from django.contrib.auth.views import logout
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7806 次 |
| 最近记录: |