Загрузка файлов Django - просто не могу разобраться - PullRequest
1 голос
/ 14 апреля 2010

ОК, я сдаюсь - после 5 часов, пытаясь получить форму django для загрузки файла, я проверил все ссылки в stackoverflow и нашел и гуглил. Почему это так сложно, я просто хочу, чтобы он работал как загрузка файла администратора?

Итак, я понял, что мне нужен код вроде:

            if submitForm.is_valid():
                  handle_uploaded_file(request.FILES['attachment'])
                  obj = submitForm.save()

и я могу увидеть свой файл в request.FILES ['attachment'] (да, у меня установлен enctype), но что я должен делать в handle_uploaded_file? Все примеры имеют фиксированное имя файла, но, очевидно, я хочу загрузить файл в каталог, который я определил в модели, но я не вижу, где найти это.

def handle_uploaded_file(f):
  destination = open('fyi.xml', 'wb+')
  for chunk in f.chunks():
    destination.write(chunk)
  destination.close()

Бьюсь об заклад, я буду чувствовать себя действительно глупо, когда кто-то указывает на очевидное!

Ответы [ 2 ]

1 голос
/ 14 апреля 2010

Вот как я это делаю:

def handle_uploaded_file(f, instance):
    instance.field.save('name_slug.ext', f, True)
    instance.save()
0 голосов
/ 14 апреля 2010
def handle_uploaded_file(f, filename):
  destination = open(filename, 'wb+')
  for chunk in f.chunks():
    destination.write(chunk)
  destination.close()

Или я что-то пропустил?

...