вы можете переопределить стандартную форму аутентификации
, например,
from django.contrib.auth.forms import AuthenticationForm
from django import forms
class UserLoginForm(AuthenticationForm):
def __init__(self, *args, **kwargs):
super(UserLoginForm, self).__init__(*args, **kwargs)
username = forms.EmailField(widget=forms.TextInput(
attrs={'class': 'form-control', 'placeholder': '', 'id': 'hello'}))
password = forms.CharField(widget=forms.PasswordInput(
attrs={
'class': 'form-control',
'placeholder': '',
'id': 'hi',
}
))
в url.py, вы также можете передать эту пользовательскую форму аутентификации, например,
from django.contrib.auth import views
from myapp.forms import UserLoginForm
urlpatterns = [
path(
'login/',
views.LoginView.as_view(
template_name="login.html",
authentication_form=UserLoginForm
),
name='login'
)
]
Вы можете переопределить шаблон входа в систему
и настроить шаблон в соответствии с вашими требованиями
<form method="post">
{{ form.non_field_errors }}
<div class="form-group">
<label for="{{ form.username.id_for_label }}">Username:</label>
{{ form.username }}
{{ form.username.errors }}
</div>
<div class="form-group">
<label for="{{ form.password.id_for_label }}">Password:</label>
{{ form.password }}
{{ form.password.errors }}
</div>
<button type="submit">Login</button>
</form>
Мои нетехнические 0,02$
Сделайте то, что ТАК делает в их полях комментария, обеспечьте обратную связь относительно того, что остающаяся длина знака пользователя, и позвольте им идти мимо максимума, но не отправлять> 300 символов. Вот то, почему:
Я сделал бы это этот путь:
$ ('#textarea-id').bind (
'change input keyup keydown keypress mouseup mousedown cut copy paste',
function () { return ($(this).val().length <= maxlength) }
)
Столько bingings только, чтобы быть абсолютно уверенным :-)
Присоедините onchange событие к текстовой области. Там можно проверить если значение, больше, чем соответствующее или нет. Пример с jQuery:
$("#textarea-id").change(function (){
var text = $(this).val();
if( text.length > MAX ){
return false;
}
});
Это сделает это...
function textareaMaxLen(event) {
var max = parseInt(this.attr("maxlength"), 10);
if(this.value.length >= max)
this.value = this.value.substr(0, max);
}
$("textarea").keyup(textareaMaxLen).blur(textareaMaxLen);
Я сделал это как это в прошлом:
<textarea onkeyup="checkLength(this);"></textarea>
Затем реализуйте эту функцию:
function checkLength(control) {
if (control.value.length > 5) {
control.value = control.value.substr(0, 5);
}
}
Это - довольно основной пример, прикрепляющий длину к 5, но надо надеяться дает Вам идею!