Это убивает меня!
Я использую django-filebrowser, и я хочу создать приложение галереи, которое использует возможности загрузки для управления изображениями.
У меня есть модель галереи, которая позволяет пользователю выбирать или создавать каталог на сервере и загружать файлы в эту папку, чтобы они отображались в галерее. Я хочу автоматически тралить каталог, в который пользователь загрузил изображения и выбрал, а затем автоматически создавать экземпляры экземпляров для каждого изображения в папке.
class Gallery(model.Models):
gallerydirectory = FileBrowserField(...)
title = ...
description ...
class Image(model.Models):
image_field = models.ImageField()
Проблема заключается в том, что FileBrowser представляет изображения по-разному для Django, но я хочу использовать DJango ImageFields, поскольку затем я могу использовать другие приложения (сорвать миниатюры) в конце шаблона.
У меня есть все данные, необходимые для файла, то есть имя файла, путь и т.д. Я просто не могу заставить Django создать экземпляр ImageField, не загружая изображение снова. Я просто хочу его заполнить.
Я видел еще один поток здесь, который предлагает следующее:
for image in filebrowser_image_objects_list:
f = File(open('path-to-file-on-server','r'))
i = Image()
i.image_field('filename.png',f.read())
но это дает мне:
SuspiciousOperation error
Attempted access to '/filename.png' denied
который предполагает, что путь читается неправильно. Я напечатал атрибуты объекта File, и он открывает правильное изображение, оно просто не передается в ImageField
Помощь будет очень оценена!
UPDATE
Я отказался от попыток получить эту работу, поскольку она слишком беспорядочна. Проблема, которая была у меня выше, заключалась в том, что я установил поле upload_field из ImageField в '/', и это оставалось незамеченным, означающее, что файл записывается в '/something.png'.
Я изменил его так, чтобы в Image теперь использовался FileBrowserField, а не ImageField.