【发布时间】:2019-09-20 02:04:52
【问题描述】:
我编写了一个带有单选按钮的表单,我在初始化表单时提供了它的值。表单正在完美显示,但是当我需要使用通过表单提交的值时,我不能,因为它没有进行验证。
forms.py
from django import forms
class voteForm(forms.Form):
def __init__(self,candidates, *args, **kwargs):
super(voteForm,self).__init__(*args, **kwargs)
self.fields['Candidate'] = forms.ChoiceField(choices=candidates, widget=forms.RadioSelect)
views.py
from django.shortcuts import render,redirect
from register.models import Candidate, Voter
from voting.models import Vote
from voting.forms import voteForm
from django.http import HttpResponse
def index(request):
context={}
if request.method=='POST':
form = voteForm(request.POST)
if form.is_valid():
# do something with data
return HttpResponse('Success')
voterid=1
context['voter']=Voter.objects.get(id=voterid)
request.session['id']=voterid
candidates=Candidate.objects.filter(region=context['voter'].region).values_list('id','name')
form = voteForm(candidates)
context['form']=form
return render(request,'voting/index.html',context)
编辑。
HTML 代码
<h1>Vote</h1>
{{ voter.name }}
{{ voter.region }}
<form action="/vote/" method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit">
</form>
【问题讨论】:
标签: django python-3.x django-forms