Я пытаюсь установить атрибут имени в поле выбора формы с помощью django.
Вот что я пытаюсь:
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, он не устанавливается должным образом ...
Кроме того, в некоторых случаях я пытаюсь установить значение по умолчанию, но оно не дает никакого эффекта. Есть идеи?
Спасибо за вашу помощь!
UPDATE
Вот пример 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>
Каждый тег выбора позволяет привязывать некоторые данные к 2 разным файлам, загруженным ранее
Значение атрибута name происходит от значения label_tag, если я не ошибаюсь.
И значение label_tag - это данные, извлеченные из каждого файла соответственно.
К сожалению, два разных файла могут содержать одно и то же значение, которое извлекается для установки атрибута «имя». Это моя проблема!
Таким образом, я бы определил имя атрибута каждого тега select следующим образом:
(имя файла) + "_" + (значение, извлеченное из файла)
Я не знаю, понятны ли мои объяснения ...
Знаете ли вы, почему то, что я пытаюсь, не работает?
Более того, когда я устанавливаю начальное значение, оно не оказывает никакого влияния ...