2010-07-27 80 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

相关问题