Django,在无线电输入上设置selected =“selected”

时间:2009-07-25 00:03:46

标签: django django-forms

一个简单的表单,其中ModelChoiceField显示为单选按钮(继承的小部件)。

每次用户选择单选按钮时,我都会使用onchange事件进行POST:

shipping_choice = ShippingChoiceField(
    queryset=ShippingMethods.objects.all(),
    empty_label=None,
    widget=forms.RadioSelect(attrs={
        'class': 'order',
        'onchange': '$("#shipping_choice").submit()',
    })
)

我需要让用户选择的收音机在页面重新加载时实际被“选中”。

添加一个额外的attr'selected',不会这样做,因为当用户实际先做出选择时需要它。

2 个答案:

答案 0 :(得分:2)

表单具有initial属性,您可以使用:

form = YourForm(initial={'shipping_choice': current_choice})

然后,我猜你正在使用ModelForm,在这种情况下你应该只是传递实例:

form = YourForm(instance=order)   # where "order" is your instance...

或者您可能只是不明白表单可以绑定到数据:

if request.method == 'POST':
    order_form = YourForm(data=request.POST)
else:
    order_form = YourForm()

答案 1 :(得分:0)

遗憾的是,您的问题及后续评论并不清楚。在表单重新提交时显示它是什么意思?

通常,流程显示表单,提交,如果有任何错误则重新显示,然后进入确认页面。你有什么问题?或者你的流程与此有显着差异?