设置django表单字段的'name'属性

时间:2011-06-28 13:56:44

标签: django forms

我正在努力用django设置表单选择字段的'name'属性。

这就是我正在尝试的:

def make_layers_form(dxf_model):
layers = Layer.objects.filter(dxf_file=dxf_model)
choices = [(m[0], m[1]) for m in settings.MACHINING_CHOICES]
fields = {}

for l in layers:
    if l.name.decode() == "0":
        # Si le layer 0 existe on l'associe a la "Coupe"
        init = settings.MACHINING_CHOICES["CUT"]
    else:
        # Par défaut on met la valeur "Aucun"
        init = settings.MACHINING_CHOICES["NONE"]

    fields[l.name] = forms.ChoiceField(choices=choices, initial=init, 
                                       widget=forms.Select(attrs={'name':dxf_model.filename+"_"+str(l.pk)}))


return type('LayersForm', (forms.BaseForm,), {'base_fields':fields})

当我关注'name'属性时,它未按预期设置...

此外,我尝试在某些情况下设置默认值,但它没有效果。有什么想法吗?

感谢您的帮助!

更新

这是一个html示例

 <select name="0" id="3_0">
     <option value="NONE">Aucun</option>
     <option value="CUT">Coupe</option>
     <option value="MARK">Marqueur</option>
 </select>

 ...

 <select name="0" id="4_0">
     <option value="NONE">Aucun</option>
     <option value="CUT">Coupe</option>
     <option value="MARK">Marqueur</option>
 </select>

每个select标签允许将一些数据绑定到先前上传的2个不同文件

如果我没有错,属性'name'的值来自label_tag的值。

label_tag的值分别是从每个文件中提取的数据。

不幸的是,两个不同的文件可以包含相同的值,这些值被提取用于设置属性“name”。这是我的问题!

所以我会定义每个select标签的属性名称,如下所示: (filename)+“_”+(从文件中提取的值)

我不知道我的解释是否清楚......

你知道为什么我的尝试不起作用吗?

当我设置初始值时,它没有任何影响......

0 个答案:

没有答案