Django - как установить форму. Имя файла - PullRequest
1 голос
/ 02 марта 2012

Я хотел бы установить произвольное имя для объекта FileField в моей форме администратора, чтобы его атрибут html 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

С этим кодом я получаюи то, что я хочу сделать, это установить его атрибут имени на что-то другое.

РЕДАКТИРОВАТЬ:

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

1 Ответ

2 голосов
/ 02 марта 2012

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

class MyAdminForm(forms.ModelForm):
    new_field = forms.FileField()
    # Rest of the form goes here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...