В настоящее время я пытаюсь переопределить форму по умолчанию, используемую в Django 1.4, при входе на сайт администратора (мой сайт использует дополнительное поле «токен», необходимое для пользователей, которые выбирают двухфакторную аутентификацию, и является обязательным для сотрудников сайта. ). Форма 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 любит предоставлять свою собственную форму для этого шаблона и таким образом отображаются только поля username
и password
. Есть ли способ, которым я могу заставить это работать, или мне просто лучше «жестко кодировать» поля HTML в форме?