私は単純なフォームを持っており、ユーザーがフォーム上で何か間違っているときはいつでも、私はDjangoで検証エラーを起こしたいと思います。問題は私がそれを設定したことですが、フォームが間違った値で提出されたときに、それが通過します。なぜそれが起こっているのだろうと私はそれを避けることができますか?なぜ私のDjangoフォームでエラーが発生していないのですか?
<form id="ask-project" method="post" action="{% url 'ask-project' %}">
{% csrf_token %}
<input required="required" class="form-control form-text required" id="prenom" name="prenom" type="text">
<button class="btn btn-default submit">Submit</button>
</form>
views.py:
def askProject(request):
if request.method == 'POST':
form = AskProjectForm(request.POST)
if form.is_valid():
save_it = form.save(commit=False)
save_it.save()
return redirect('/merci/') #success
forms.py:
class AskProjectForm(forms.ModelForm):
class Meta:
model = AskProject
fields = ['prenom']
def clean_prenom(self):
prenom = self.cleaned_data['prenom']
if len(prenom) < 3:
raise ValidationError('Votre prénom doit etre plus long que 1 caractère.')
return prenom
アムここ
は、HTML形式であります私は何か間違っている?
間違ったデータがdbに保存されるのですか?エラーがテンプレートに表示されず、データが保存されないということだけですか? –
データはまだdbに保存されていますが、エラーは表示されません – Lindow