gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:38:51 25 4
gpt4 key购买 nike

我目前正在尝试在登录管理站点时覆盖 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com