相关疑难解决方法(0)

渲染时的NoReverseMatch:反转''django.contrib.auth.views.login''

我正在使用Django的身份验证,在login.html模板中,以下语句生成错误:

{% url 'django.contrib.auth.views.login' %}
Run Code Online (Sandbox Code Playgroud)

/ login时的TemplateSyntaxError

渲染时捕获NoReverseMatch:反向找到''django.contrib.auth.views.login'',其参数'()'和关键字参数'{}'未找到.

这个网址在我的urls.py中定义:

(r'^login$', 'django.contrib.auth.views.login')
Run Code Online (Sandbox Code Playgroud)

我安装了auth系统:

INSTALLED_APPS = (
    'django.contrib.auth',
...
)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

authentication django django-authentication django-login

26
推荐指数
2
解决办法
2万
查看次数

如何从自定义LoginRequired中间件重用Django Admin登录表单

背景和尝试代码:

我正在使用Django 1.6.2(在Python 3.3上),并希望所有视图有效地将login_required装饰器应用于它们并重新使用实际的管理员登录表单.请注意,管理员应用程序也将与默认网址一起使用.我已经看过重定向到管理员登录,这是我想要避免的解决方案.

一个流行的路线似乎是使用自定义中间件,如使用下一个参数 DjangoSnippet 登录所需中间件所示.我已经改编了这个片段,并使用它如下:

project_name.middleware:

from django.contrib.auth.views import redirect_to_login

class LoginRequired:
    def process_request(self, request):
        if request.user.is_authenticated():
            return
        if request.path != '/admin/login/':
            return redirect_to_login(request.path, '/admin/login/')
Run Code Online (Sandbox Code Playgroud)

settings.py:

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',    
    'project_name.middleware.LoginRequired', # <----------
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
Run Code Online (Sandbox Code Playgroud)

问题

几乎是有效的,除了?next=提供/admin/login的不是我预期的那样处理.给定http://localhost:8000/admin/login/?next=/(成功显示管理员登录表单并启用登录)的请求,在提交正确信息后,我得到404响应,The requested admin page does not exist.这可能意味着登录表单将提供的查询参数视为相对于某事物.

我该怎么做才能让它按预期工作?

注意:如果这是一个疯狂的追逐,我不会感到非常惊讶,所以如果这是不可能的,那么我愿意接受这种效果的答案(但如果它们包括引用/参考,那么它会很好,所以我可以填写一个我在这里理解的差距).

python django django-authentication

5
推荐指数
1
解决办法
3252
查看次数