Почему я получаю абсолютные URL в Satchmo, когда я загружаю изображения продуктов локально? - PullRequest
0 голосов
/ 09 апреля 2009

Я занимаюсь локальной разработкой с использованием Django и Satchmo. Когда я загружаю изображения продукта локально через администратора, путь к изображению отображается в виде абсолютного пути с буквой диска вместо правильного относительного пути.

Как ни странно, Satchmo сохраняет как исходное изображение, так и миниатюры, которые он генерирует, как в каталоге me /media/, так и в каталоге /media/images/, причем в последнем я хочу их отправить.

Настройки реле следующие:

# path relative to the settings.py file
DIRNAME = os.path.abspath(os.path.dirname(__file__).decode('utf-8'))

MEDIA_ROOT = os.path.join(DIRNAME, 'media')
MEDIA_URL = 'http://localhost:8000/'
ADMIN_MEDIA_PREFIX = '/media/'

Я трижды проверил файл local_settings.py, и в нем нет упоминания слова 'media', поэтому я уверен, что нет переопределений настроек.

Если это поможет, я в Windows, но я использую все правильные обозначения Unix для своих путей.

Ответы [ 2 ]

1 голос
/ 11 апреля 2009

Оказывается, проблема заключается в появлении косой черты в файле settings.py.

Обычно я создаю relative_path() функцию в своем файле settings.py, чтобы я мог легко установить:

MEDIA_ROOT = absolute_path('media')

Версия Satchmo, которую я использовал, поощряла использование параметра DIRNAME вместо:

DIRNAME = os.path.abspath(os.path.dirname(__file__).decode('utf-8')

Проблема заключалась в том, что при использовании этой техники мой MEDIA_ROOT устанавливался так:

MEDIA_ROOT = os.path.join(DIRNAME, 'media')

Но при этом использовалась обратная косая черта Windows вместо прямой косой черты Unix. Я решил это с помощью:

MEDIA_ROOT = os.path.join(DIRNAME, 'media').replace('\\', '/')
1 голос
/ 09 апреля 2009

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

...