Django - 覆盖管理站点的登录表单

标签 django django-admin django-authentication

我目前正在尝试在登录管理站点时覆盖 Django 1.4 中使用的默认表单(我的站点使用选择双因素身份验证的用户所需的附加“ token ”字段,并且对于站点来说是强制性的职员)。 Django 的默认形式不支持我所需要的。目前,我的 templates/ 目录中有一个名为 templates/admin/login.html 的文件,该文件似乎正确覆盖了我使用的模板贯穿我网站的其余部分。文件内容简单如下:

# admin/login.html:
{% extends "login.html" %}

实际的登录表单如下:

# login.html:
{% load url from future %}<!DOCTYPE html>
<html>
    <head>
        <title>Please log in</title>
    </head>
    <body>
        <div id="loginform">
            <form method="post" action="{% url 'id.views.auth' %}">
                {% csrf_token %}
                <input type="hidden" name="next" value="{{ next }}" />
                {{ form.username.label_tag }}<br/>
                {{ form.username }}<br/>
                {{ form.password.label_tag }}<br/>
                {{ form.password }}<br/>
                {{ form.token.label_tag }}<br/>
                {{ form.token }}<br/>
                <input type="submit" value="Log In" />
           </form>
        </div>
    </body>
</html>

我的问题是,当使用我的正常登录 URL 访问时,所提供的表单工作得非常好,因为我提供了自己的 AuthenticationForm 作为要显示的表单,但是通过 Django 管理员登录路由,Django 喜欢向该模板提供它自己的表单,因此只有 usernamepassword 字段呈现。有什么办法可以让这个工作正常进行吗?或者我最好将 HTML 字段“硬编码”到表单中?

最佳答案

你好
我找到了一个非常简单的解决方案。
你只需要修改项目的urls.py文件(注意,不是应用程序的)

  1. 在您的 PROJECT 文件夹中找到文件 urls.py。
  2. 将此行添加到导入部分
    从 your_app_name 导入 View
  3. 找到此行
    url(r'^admin/', include(admin.site.urls))
  4. 在该行上方添加以下内容
    url(r'^admin/login/',views.your_login_view),

这是一个例子

from django.conf.urls import include, url
from django.contrib import admin

from your_app import views

urlpatterns = [
    url(r'^your_app_start/', include('your_app.urls',namespace="your_app_name")),

    url(r'^admin/login/', views.your_app_login),
    url(r'^admin/', include(admin.site.urls)),
]

关于Django - 覆盖管理站点的登录表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11341663/

相关文章:

django Rest Framework - 将扩展用户数据保存到数据库

django - Django表单集无效

python - 保存子模型时,在 Django 抽象父模型上启动后保存

javascript - 如何通过 javascript 从管理页面检索 Django 模型 ID

python - 使用 django 运行带有密码参数的 python 脚本

python - View 在模块中不存在 - 当它存在时

python - get_do_sorting_url 上的 django-admin-sortable NoReverseMatch 错误

python - Django:以编程方式确定管理页面的路径?

python - Django : how to give user/group permission to view model instances for a specified period of time

python - Django 创建自定义 UserCreationForm