Django Image Upload Fails ... Файл не записан в каталог (странная ошибка) - PullRequest
1 голос
/ 12 апреля 2011

У меня есть модель Django, которая должна загружать изображение в каталог мультимедиа на моем сервере через ImageField.

Я делал это раньше успешно на сервере Linux. В этом случае я изменил группу на www-data и изменил права доступа на g + w, чтобы позволить apache записывать файлы в определенную папку мультимедиа, а также в корневой каталог мультимедиа.

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

Это сбивает с толку, потому что A) он работает на моем локальном сервере и B) у меня есть другая модель, которая успешно сохраняет и записывает изображение на мой сервер. Я не могу понять, почему обе эти вещи работают, в то время как другая загрузка изображения терпит неудачу.

Вот моя модель:

    class Post_Photo(models.Model):
       post=models.ForeignKey(Post,blank=True,null=True)
       photo=models.FileField(upload_to="post_photos") 

       def __unicode__(self):
           return str(self.post)

Вот мой файл настроек:

    MEDIA_ROOT = '/home/public_html/media'

каталог post_photos живет по адресу / home / public_html / media / post_photos. Как я уже сказал, я внес изменения в группу и разрешения, чтобы позволить серверу записывать файлы.

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

Если кто-то может помочь мне решить эту проблему, я буду вечно благодарен

1 Ответ

0 голосов
/ 14 июня 2011

Вы можете попробовать установить переменную для определения локального хранилища:

local_storage = FileSystemStorage(location=SITE_ROOT, base_url='/post_photos')

Затем используйте это на вашей модели:

photo = models.FileField(storage=local_storage)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...