Django ModelForm Ajax Загрузить - PullRequest
       28

Django ModelForm Ajax Загрузить

0 голосов
/ 18 сентября 2010

Я использую код Ajax для загрузки файлов. Django хорошо заботится о загрузке файлов на ModelForms. Простое написание form.save () будет загружать любые данные файла в заголовок, управлять созданием папок при необходимости и даже переименовывать файл, если дубликат уже существует. Возьмите эту ModelForm, которая имеет только один именованный файл, например:

class UploadFileForm(ModelForm):
    class Meta:
        model = MyModel
        fields = ('file',)

Поскольку я использую Ajax, единственная информация, которая у меня есть, - это request.FILES ['file']. Вот что я попробовал на мой взгляд:

 form = UploadFileForm(initial={'file':request.FILES['file']})
 if form.is_valid():
     form.save()

Но он возвращает неверную форму (файл необходим). Я могу сделать это, используя чистый Python, но с силой Django, в чем смысл этого?

1 Ответ

0 голосов
/ 18 сентября 2010
form = UploadFileForm(request.FILES)
if form.is_valid():
    form.save()

исходный параметр, позволяющий инициализировать поля формы, как, например, предоставление новой форме с начальными данными.

Здесь вы получаете данные файла из запроса.

...