Кастомизация форм регистрации в django

Возникла необходимость свободно изменять поле ввода логина и пароля в django. Наткнулся на проблему: input логина в django описывается как {{form.username}}, который затем самим django преобразовывается в html-тег <input>. Так как это преобразовывает сам django, возможности менять напрямую нет. Добавить класс, чтобы в css преобразовывать, также не получается.

Вопрос: как свободно кастомизировать {{form.username}}? (если важна кастомизация, то мне нужно добавить серый - подсказывающий - текст в поле ввода, как на картинке)

Заранее благодарен!

Подсказывающий текст

Версия django: 2.2.2

Версия python: 3.6.3


Ответы (2 шт):

Автор решения: Sherlock

В случае с авторизацией, можно просто создать форму с своими инпутами:

<h2>Авторизация</h2>
<div class="form-row">
    <input type="text" name="username" id="your-username" class="input-text" placeholder="username" required>
</div>
<div class="form-row">
    <input type="password" name="password" id="password" class="input-text" placeholder="Пароль" required>
</div>

И во вьюхе вытягивать эти инпуты по атрибуту name:

username    = request.POST.get('username')
password    = request.POST.get('password')
account     = authenticate(username=username, password=password)
→ Ссылка
Автор решения: DiHASTRO

Спасибо тому парню, а именно @Sherlock. Взял его ответ больше за идею, в итоге дорешил проблему.

Вместо {{form.username}} просто вставляем

    <div class="form-row">
        <input type="text" name="username" id="your-username" class="input-text" placeholder="username" required>
    </div>

в наш html. В итоге и django не ругается на нас благим матом, и мы можем спокойно кастомизировать нашу авторизацию. Всем добра!

→ Ссылка