我对Django比较新,并尝试创建一个页面,在那里我提出问题并允许用户给出两个答案。所以我想在下面的两个猜测中显示问题列表和字段。我试图使用表单,但我无法保存或验证从这些表单中获得的数据。 如果我的相关代码如下。
来自models.py:
class Subject(models.Model):
subject = models.FloatField(verbose_name='ID')
class SubjectForm(forms.Form):
subject = forms.FloatField()
class General(models.Model):
question = models.CharField(max_length=400)
answer = models.FloatField()
class Guess(models.Model):
general = models.ForeignKey(General)
subject = models.ForeignKey(Subject)
lower = models.FloatField('lower boundary')
upper = models.FloatField('upper boundary')
class GuessForm(forms.Form):
lower = forms.FloatField()
upper = forms.FloatField()
来自views.py:
def questions(request):
if request.method == 'POST': # If answers were submitted
for question in all_questions:
form = GuessForm()
if form.is_valid():
lower = request.POST.get('lower','')
upper = request.POST.get('upper','')
new_guess = Guess(pk = 'question',
subject = subject,
lower = lower,
upper = upper)
new_quess.save()
return HttpResponseRedirect('/general_knowledge/questions/thanks/')
else:
form = GuessForm()
csrfContext = RequestContext(request,{'form': form})
return render_to_response('general_knowledge/question_form.html',
{'all_questions': all_questions},
context_instance=RequestContext(request))
来自模板
{% for question in all_questions %}
<form action="" method="post">{% csrf_token %}
<ol>
<p><LI> {{ question.question }}.</p>
<label for="lower">Lower boundary:</label><input type="text" name="lower">
{{ form.lower.errors }}
<label for="upper">Upper boundary: </label><input type="text" name="upper">
{{ form.upper.errors }}
</ol>
</form>
{% endfor %}
<input type="submit" value="Submit" />
答案 0 :(得分:-1)
您可以在提交时使用JQuery打印验证,如下所示:
$("input[type="submit"]).click(function () {
if ($("#lower").text() == // some condition
{
$("#validation").show();
}
else {
$("Form").submit();
}
});