2010-07-27 82 views
0

我試圖在django窗體中設置自定義「名稱」屬性。在Django中爲RadioSelect設置自定義「名稱」屬性

我一直想這樣的做法:

class BaseQuestionForm(forms.Form): 
    question_id = forms.CharField(widget=forms.HiddenInput) 
    answer = forms.ChoiceField(choices = [ ... ], widget=forms.RadioSelect) 

,然後用設置在答案的「name'-ATTR:

form.fields['answer'].widget.name = 'new_name' 

但是,這並不工作,名稱始終設置爲「答案」,如在字段名稱中。有沒有辦法做到這一點?

回答

1

首先嚐試:

print form.fields['answer'].widget.name 

我相信小部件沒有一個名字(好吧,我甚至敢肯定;-))。

達到你想要什麼,你就必須:

form.fields['new_name'] = form.fields['answer'] 
del form.fields['answer'] 

然而,這將new_name場,如果你在模板中使用簡單{{ form }}(這本字典是有序的)移動到字段的底部。 Django使用鍵名稱在模板中構建表單字段名稱。

+0

這工作得很好。 但是,有沒有其他的方式來創建一個數據庫生成的形式在Django - 因爲這就是我使用這個代碼。 – 2010-07-27 19:22:45

相關問題