Django - переопределить форму входа на сайт администратора

В настоящее время я пытаюсь переопределить форму по умолчанию, используемую в 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 в форму для?

Ответы на вопрос(5)

Ваш ответ на вопрос