2009-07-25 25 views
2

ModelChoiceField顯示爲單選按鈕(繼承的窗口小部件)的簡單窗體。Django,在收音機輸入設置selected =「selected」

我使用的是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

形式有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() 
+0

嘿夥計, 不,我沒有使用ModelForm,這是一個預檢表格,只是檢查設置一個shipping_method(訂單在下一步創建,因爲所有信息都在會議)。 我不確定最初會做這個伎倆,'原因是不是它只是爲了初始顯示?每次用戶選擇不同的收音機時,是否可以動態設置它,然後表單重新提交? – panosl 2009-07-25 07:08:33

+0

另外,不知道如何設置current_choice,因爲我必須實例化表單來獲取提交的值。 – panosl 2009-07-25 07:19:58

0

不幸的是,您的問題和後續評論尚不清楚。在表單重新提交時顯示它意味着什麼?

通常情況下,流程將顯示錶單,如果存在任何錯誤,請提交併重新顯示,然後進入確認頁面。你有什麼問題?或者,你的流量是否明顯不同?