Кастомизация форм регистрации в django
Возникла необходимость свободно изменять поле ввода логина и пароля в django. Наткнулся на проблему: input логина в django описывается как {{form.username}}, который затем самим django преобразовывается в html-тег <input>. Так как это преобразовывает сам django, возможности менять напрямую нет. Добавить класс, чтобы в css преобразовывать, также не получается.
Вопрос: как свободно кастомизировать {{form.username}}? (если важна кастомизация, то мне нужно добавить серый - подсказывающий - текст в поле ввода, как на картинке)
Заранее благодарен!
Версия django: 2.2.2
Версия python: 3.6.3
Ответы (2 шт):
В случае с авторизацией, можно просто создать форму с своими инпутами:
<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)
Спасибо тому парню, а именно @Sherlock. Взял его ответ больше за идею, в итоге дорешил проблему.
Вместо {{form.username}} просто вставляем
<div class="form-row">
<input type="text" name="username" id="your-username" class="input-text" placeholder="username" required>
</div>
в наш html. В итоге и django не ругается на нас благим матом, и мы можем спокойно кастомизировать нашу авторизацию. Всем добра!
