Django: вручную создать поле изображения в модели из существующего файла на сервере

Это меня убивает!

Я использую django-filebrowser, и я хочу создать приложение галереи, которое использует возможности загрузки для управления изображениями.

У меня есть модель галереи, которая позволяет пользователю выбирать или создавать каталог на сервере и загружать файлы в эту папку, чтобы они появлялись в галерее. Я хочу автоматически просматривать каталог, в который пользователь загрузил изображения и выбрал его, а затем автоматически создавать экземпляры Image для каждого изображения в папке.

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 

, который предполагает, что путь читается неправильно. Я распечатал атрибуты объекта файла, и он открывает правильное изображение, это просто не передается в ImageField

. Помощь будет очень признательна!

ОБНОВЛЕНИЕ

Я отказался от попыток выполнить эту работу, поскольку она слишком беспорядочная. Проблема, с которой я столкнулся выше, заключалась в том, что я установил для поля upload_field ImageField значение '/', и это осталось незамеченным, что означает, что файл записывался в '/something.png'.

Я изменил его так, что теперь изображение также использует FileBrowserField вместо ImageField.

18
задан Community 23 May 2017 в 12:02
поделиться