Ich versuche Validierungen in meinem Formular zu setzen, aber nachdem ich die offizielle Dokumentation und die Tutorials befolgt habe, erhalte ich keine Lösung. Dies ist mein Code: (Die Variablen der Klasse sind iddented)Django Formular Validierung funktioniert nicht
class QuestionForm(forms.Form):
subject = forms.CharField(widget=forms.Select(attrs={'class': 'select'},
choices=SUBJECTS_SELE),
label='Materia')
question = forms.CharField(widget=forms.Textarea(attrs={'class': 'form-control', 'rows': 1}),
label='Pregunta',
max_length=5000)
answer = forms.CharField(widget=forms.Textarea(attrs={'class': 'form-control', 'rows': 1}),
label='Respuesta correcta',
max_length=1000)
answerOne = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control', 'rows': 1}),
label='Respuesta incorrecta',
max_length=1000,
required=True)
def clean_question(self):
question = self.cleaned_data.get('question')
a = "0"
if not a in question:
raise forms.ValidationError("Es obligatorio llenar este campo")
return question
def clean_answer(self):
answer = self.cleaned_data.get('answer')
a = "0"
if not a in answer:
raise forms.ValidationError("Es obligatorio llenar este campo")
return answer
Auch habe ich auf diese Weise versuchen:
def clean(self, *args, **kwargs):
question = self.cleaned_data.get('question')
answer = self.cleaned_data.get('answer')
if question != "0":
raise forms.ValidationError("Es obligatorio llenar este campo")
if answer != "0":
raise forms.ValidationError("Es obligatorio llenar este campo")
return super(QuestionForm, self).clean(*args, **kwargs)
In diesem Fall wird die Ansicht auf diese Form entspricht das einer folgendes:
Die Variablen, die an das Objekt übergeben werden, dienen zum Speichern in einem BBDD.
verwirklichte --------------------
Nachdem die Optionen versuchen, die Leute meine in den coments recomended, ich nicht die Validierungsnachricht sehen war, und In dem Moment, in dem ich den Teil des Codes habe, der die Seite neu lädt, nachdem ich das Formular ausgeführt habe, konnte ich die Validierungsnachricht sehen.
mein html und javascript:
<div class="col-md-6">
{% if form %}
<form action="" method="POST" id="askFortm"> {% csrf_token %}
{{ form.as_p }}
<button class="btn btn-lg btn-primary enviar" id="enviar" type="submit" value="Enviar">Introducir otra
pregunta</button>
</form>
{% endif %}
</div>
<script>
$(function() {
var counter = 94;
$("#enviar").click(function() {
counter = counter + 1;
//alert(counter);
localStorage.setItem("counter",counter);
alert('Su pregunta ha sido enviada correctamente. ' +
'Envía otra y tendras más posibilidades de ganar los Airpods.');
});
$('#askFortm').on('submit', function(e) {
e.preventDefault();
setTimeout(function() {
window.location.reload();
},0);
this.submit();
});
});
</script>
Ich nehme an, dass das Problem Beziehung mit dem Reload-Seite sein kann, ist möglich, ich die csrf_token vergleichen oder wie diese some? Können Sie mir helfen, danke.
nun verwirklichte es meinen Kommentar mit dem Blick auf dieses Formular. –