在django中发布后保留选中的复选框

时间:2014-09-04 15:31:49

标签: python html django forms checkbox

我希望在提交表单后保留表单字段。除了选中的复选框

,我可以保留所有字段

以下是我的表单操作查看

def student_submit_info(request):
    form_values = {}
    if request.method == 'POST':
        form = StudentForm(request.POST)
        print form.is_valid()
        form_values = getDetails(request)
        if form.is_valid():
            print request.user.username
            student = Student.objects.get(user=request.user)
            // saving student to DB
            saveDetails(request, student, form_values)
    return render_to_response('student.html', form_values, context_instance=RequestContext(request))

def getDetails(request):
  #fetch input data
   form_values = {}
   form_values['first_name'] = request.POST['first_name']
   form_values['last_name'] = request.POST['last_name']
   form_values['skills'] = request.POST.getlist('skills[]')
   return form_values

我想保留技能(复选框),这是模板

的一部分
skill1<input type="checkbox" name="skills[]" checked value="skill1"/>
skill2<input type="checkbox" name="skills[]" value="skill2"/>
skill3<input type="checkbox" name="skills[]" value="skill3"/>

1 个答案:

答案 0 :(得分:1)

你应该制作一个custom django Forms来轻松处理表格,例如发布视图:

def post_view(request):
    form = MyForm(request.POST)
    if form.is_valid():
        do_something()
    render(request, 'your_temp', {'MyForm': MyForm'})

使用这种代码段,表单中的数据将始终是发送的数据。 您可以为空技能复选框覆盖is_valid()