我有以下表格:
django mutlipleChoiceField如何驗證?
forms.py:
class enrolForm(forms.Form):
CHOICES = [('male','male'),('female','female')]
students = forms.MultipleChoiceField(choices = CHOICES)
views.py:
form = enrolForm(request.POST)
if form.is_valid():
print "creating student"
exam = models.Exam.objects.get(name=examName)
.
.#more code .......
而不會繼續(print "creating student"
),形式是永遠有效。這是爲什麼 ? 如何驗證這樣的形式
請幫助
編輯: 它說,在form.errors:<ul class = "errorlist"><li> students<ul class="errorlist"><li>This field is required.</li></ul></li></ul><br>
編輯:
views.py:
def enrol(request,examName):
print "EXAm naaame"
form = enrolForm()
allStudents = models.User.objects.filter(groups__name="students")
myList = []
for i in allStudents:
myList.append((i,i))
print allStudents,'33333333333333333333'
form.fields['students'].choices = myList
if request.method == 'POST':
form = enrolForm(request.POST)
if form.is_valid():
exam = models.Exam.objects.get(name=examName)
for i in form.cleaned_data['students']:
user= models.User.objects.get(username=i)
exam = models.Exam.objects.get(name= examName)
models.Exam_Student.objects.create(user,exam)
return render_to_response('enrol.html',RequestContext(request,{'form':form}))
variables = RequestContext(request,{'form':form})
return render_to_response("enrol.html",variables)
你在'form.errors'中得到了什麼? – manji 2011-05-16 20:47:19
看起來'request.POST'是空的。在發回頁面之前是否選擇了一個選項(男性或女性)? – manji 2011-05-16 21:14:57
你確定你正在做一個post請求而不是get請求嗎? – 2011-05-16 21:28:03