Django Form.errors не может отображаться в шаблонах
Валидация формы в Django. Я пытаюсь отправить данные форме, но form.errors не может отобразиться в шаблонах.
просмотров
def registerUser(request):
page = 'register'
form = CustomUserCreationForm()
if request.method == 'POST':
form = CustomUserCreationForm(request.POST)
if form.is_valid():
user = form.save(commit=False)
user.username = user.username.lower()
user.save()
messages.success(request, 'User account was created!')
login(request, user)
return redirect('edit-account')
else:
messages.success(
request, 'An error has occurred during registration')
context = {'page': page, 'form': form}
return render(request, 'users/login_register.html', context)
шаблонная форма
<form method="POST" action="{% url 'register' %}" class="form auth__form">
{% csrf_token %}
{% for field in form %}
<div class="form__field">
<label for="formInput#text">{{field.label}}</label>
{{field}}
<!-- {% if field.help_text %}
<small>{{field.help_text}}</small>
{% endif %} -->
{% for error in field.errors %}
<p style="color: red;">{{error}}</p>
{% endfor %}
</div>
{% endfor %}
<div class="auth__actions">
<input class="btn btn--sub btn--lg" type="submit" value="Sign In" />
</div>
</form>
Я не смог понять, почему сообщение об ошибке не отображается. Любая помощь будет принята с благодарностью.
class CustomUserCreationForm(UserCreationForm):
class Meta:
model = User
fields = ['first_name', 'email', 'username', 'password1', 'password2']
labels = {
'first_name': 'Name'
}
def __init__(self, *args, **kwargs):
super(CustomUserCreationForm, self).__init__(*args, **kwargs)
for name, field in self.fields.items():
field.widget.attrs.update({'class': 'input'})
моя ошибка была :
super(CustomUserCreationForm, self).__init__() # forgot to pass the arguments