Pergunta

Eu estou fazendo algum desenvolvimento local usando Django e Satchmo. Quando eu fazer upload de imagens de produtos localmente via de administração, o caminho para a imagem mostra como um caminho absoluto, completo com letra de unidade, em vez do caminho relativo adequada.

Mais estranho ainda, Satchmo economiza a imagem original e as miniaturas que gera tanto me /media/ diretório e /media/images/ diretório, sendo este último onde eu deseja -los a ir.

As configurações relavent são as seguintes:

# 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/'

Eu tenho tripple verificado o arquivo local_settings.py e não há nenhuma menção da palavra em qualquer lugar 'media' nele, então eu tenho certeza que não há substituições de configuração.

Se isso ajuda, eu estou no Windows, mas eu estou usando toda a notação unix adequada para os meus caminhos.

Foi útil?

Solução 2

Acontece que o problema é um problema com as direções de barra no arquivo settings.py.

Normalmente, eu criar uma função relative_path() no meu arquivo settings.py para que eu possa facilmente definido:

MEDIA_ROOT = absolute_path('media')

A versão do Satchmo eu estava usando incentivado o uso de um ambiente DIRNAME vez:

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

A questão era, usando esta técnica, a minha MEDIA_ROOT estava sendo definido como tal:

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

Mas isso estava usando as barras invertidas Windows em vez do barras Unix. I determinação já com:

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

Outras dicas

Esta é uma única falha no Windows. Estou desenvolvendo um aplicativo Satchmo no Windows e ele faz isso, mas quando eu implantar em uma caixa de Linux funciona muito bem. Eu só ir para o banco de dados e editar os caminhos lá quando eu estou fazendo testes na minha caixa do Windows.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top