2012-03-02 2 views
1

Я хотел бы задать произвольное имя для объекта FileField в моей форме администратора, чтобы атрибут html name не был равен имени моего имени экземпляра.Django - как установить forms.FileField name

class MyAdminForm(forms.ModelForm): 
    file_field = forms.FileField() 

    def __init__(self, *args, **kwargs):          
     if kwargs.has_key('instance'): 
      instance = kwargs['instance'] 
      self.initial['image_file'] = instance.file_field 

С помощью этого кода я получаю < тип ввода = «Файл» имя = «file_field»/> и то, что я хочу сделать, это установить его имя атрибута к чему-то еще.

EDIT:

Я принял ответ ниже, но у меня есть еще один вопрос. Можно ли построить переменное число объектов FileField? Я имею в виду - что, если я хотел бы иметь 4 из этих сейчас, но при некоторых обстоятельствах только один? Должен ли я объявить все это как поля классов, такие как file_field1, file_field2 и т. Д., Или можно добавить их в словарь, например: {'file_field1: FileField(),' file_field2 ': FileField() } - Я действительно попробовал и получил ошибку ...

+1

Английский - это не ваш родной язык. ** Избегайте длинных предложений **, например: «Я бы хотел установить настраиваемое имя для объекта FileField в моей форме администратора, чтобы атрибут html name не был равен имени моего имени экземпляра». Придерживайтесь предмета + глагол + дополнение. Ваши вопросы будут утонченно иметь больше смысла! – jpic

+0

Вот несколько советов из вышесказанного .. :) http://blog.stackoverflow.com/2010/2010/asking-better-questions/ и, как @jpic, упомянул, что вы получите лучшие ответы .. – Lipis

+0

Большое спасибо за язык советы! :) –

ответ

2

Атрибут name в HTML такой же, как имя в определении формы, поэтому, если вы не хотите, чтобы оно было file_field, тогда не называйте его file_field.

class MyAdminForm(forms.ModelForm): 
    new_field = forms.FileField() 
    # Rest of the form goes here 
+0

Если нет другого пути, тогда я это сделаю, но означает ли это, что я не могу объявить словарь FileFields? –

+0

Да, возможно динамическое создание полей формы. См. Http://stackoverflow.com/questions/5478432/making-a-django-form-class-with-a-dynamic-number-of-fields –

Смежные вопросы