我需要一个带有两个(互斥)单选按钮的表单,以及它们之间的一些其他控件 . 我的意思是我需要这样的形式:
Here我找到了一种方法来创建一个带有两个互斥的单选按钮的布尔字段,但我不知道如何在它们之间插入其他控件 .
我建议你把它分成两个(或更多)单独的Django表单,用一些客户端JS来点击单选按钮(它们本身不是任何Django表单的一部分)来启用/禁用每组字段 .
例如
class FormA(forms.Form): some_field = forms.CharField() other_field = forms.CharField() class FormB(forms.Form): third_field = forms.CharField() one_more_field = forms.CharField()
在你看来:
def my_view(request): form_a = None form_b = None if request.POST: if request.POST['choice_field'] == 'a': form_a = FormA(prefix='a', data=request.POST) if form_a.is_valid(): # do something if request.POST['choice_field'] == 'b': form_b = FormB(prefix='b', data=request.POST) if form_b.is_valid(): # do something form_a = form_a or FormA(prefix='a') form_b = form_b or FormA(prefix='b') context = { 'form_a': form_a, 'form_b': form_b, } return render_to_response("my_form.html", context, RequestContext(request))
在您的模板中:
<form action="" method="post"> <input type="radio" name="choice_field" value="a" /> <ul> {{ form_a.as_ul }} </ul> <input type="radio" name="choice_field" value="b" /> <ul> {{ form_b.as_ul }} </ul> <input type="submit" value="Submit" /> </form>
1 回答
我建议你把它分成两个(或更多)单独的Django表单,用一些客户端JS来点击单选按钮(它们本身不是任何Django表单的一部分)来启用/禁用每组字段 .
例如
在你看来:
在您的模板中: