Форум сайта python.su
Доброго времени суток, господа.
Столкнулся со следущей проблемой - есть рабочая форма, но при ее заполнении с заведомо не правильными данными (например не соответствие паролей) - в шаблоне не показывает ошибок. Перепробывал уже кучу всего, взываю к помощи.
form.py
class UserCreationForm(forms.ModelForm): username = forms.CharField(label='Username', widget=forms.TextInput, required=True) password1 = forms.CharField(label='Password', widget=forms.PasswordInput, required=True) password2 = forms.CharField(label='Password confirmation', widget=forms.PasswordInput, required=True) profile_vkontakte = forms.CharField(label='Vkontakte profile', widget=forms.TextInput) profession = forms.ChoiceField(choices=profession_list) coordinate_x = forms.CharField(label='X', widget=forms.TextInput) coordinate_y = forms.CharField(label='Y', widget=forms.TextInput) class Meta: model = User fields = ('email', 'username', 'profession', 'coordinate_x', 'coordinate_y', 'profile_vkontakte') def clean_password2(self): password1 = self.cleaned_data.get("password1") password2 = self.cleaned_data.get("password2") if password1 and password2 and password1 != password2: raise forms.ValidationError("Passwords don't match") return password2 def save(self, commit = True): user = super(UserCreationForm, self).save(commit=True) user.set_password(self.cleaned_data['password1']) if commit: user.save() return user
def registration(request): if request.method == "POST" : form = UserCreationForm(request.POST) if form.is_valid(): print "form is valid" form.save() return render_to_response("action_succes.html") else: print form.is_valid() print form.errors form = UserCreationForm(request.POST) else: form = UserCreationForm() args = {} args.update(csrf(request)) args["form"] = UserCreationForm() return render_to_response("registration.html", args)
{% extends "base.html" %} {{ form.errors }} {{ form.non_field_errors }} {% block content %} {{ form.errors }} {{ form.non_field_errors }} <form action="registration" method="POST">{%csrf_token%} {{ form.errors }} {{ form.non_field_errors }} {{ form.as_ul }} {{ form.errors }} {{ form.non_field_errors }} <input type="submit" value="Register"/><br> {{ form.errors }} {{ form.non_field_errors }} {% endblock content %}
Офлайн
{{ form.errors }}
{% for i in form.errors %} {{i}} {% endfor %}
Офлайн
Я думаю, причина в этом:
args["form"] = UserCreationForm() return render_to_response("registration.html", args)
Офлайн
Тебе пытаются намекнуть, что ошибки в форме могут появиться только после ее валидации.
Тут
form = UserCreationForm()
form = UserCreationForm(request.POST)
args["form"] = UserCreationForm() return render_to_response("registration.html", args)
Офлайн