FAQ: Usando o DjangoLink para este cabeçalho

Por que recebo um erro sobre importar o DJANGO_SETTINGS_MODULE?Link para este cabeçalho

Certifique-se de que:

  • The environment variable DJANGO_SETTINGS_MODULE is set to a fully-qualified Python module (i.e. mysite.settings).

  • O módulo citado está em sys.path (import meuSite.settings deve funcionar).

  • O módulo não contém erros de sintaxe.

Eu não gosto da sua linguagem de template. Eu preciso usá-la?Link para este cabeçalho

Nós pensamos que nosso mecanismo de template é a melhor do mundo mas, reconhecemos que escolher uma linguagem de template é quase como escolher uma religião. Django não força nenhuma linguagem de template, então se você gosta de: Jinja2, Mako ou qualquer outra, sinta-se livre para utilizá-las.

Eu tenho que usar o seu modelo/camada de banco de dados?Link para este cabeçalho

Não. Tal qual o sistema de template, a camada de modelos/banco de dados é desacoplada do resto da estrutura.

A única exceção é: se você usar uma biblioteca diferente de banco de dados você não conseguirá usar o admin do Django gerado de forma automática. Ele é fortemente acoplado a camada de banco de dados do Django

Como eu utilizo campos de imagem e de arquivo?Link para este cabeçalho

Usando um FileField ou um ImageField em um modelo, seguido pelos passos:

  1. In your settings file, you’ll need to define MEDIA_ROOT as the full path to a directory where you’d like Django to store uploaded files. (For performance, these files are not stored in the database.) Define MEDIA_URL as the base public URL of that directory. Make sure that this directory is writable by the web server’s user account.

  2. Adicione a classe FileField ou ImageField no seu modelo, definindo a opção upload_to para especificar o subdiretório da configuração MEDIA_ROOT para usar para arquivos enviados.

  3. Tudo que vai ser armazenado no seu banco de dados será o caminho para o arquivo (referente a configuração MEDIA_ROOT). Você vai poder usar o atributo url provido pelo Django. Por exemplo, se sua classe ImageField se chama mug_shot, você pode pegar o caminho absoluto para sua imagem no template com: {{ object.mug_shot.url }}.

Como eu torno uma variável disponível para todos os meus templates?Link para este cabeçalho

Algumas vezes todos os templates precisarão da mesma coisa. Um exemplo comum são os menus gerados dinamicamente. À primeira vista, parece lógico adicionar um dicionário comum ao contexto do template

A melhor maneira de fazer isso no Django é usar um RequestContext. Detalhes de como fazer isso estão aqui: Using RequestContext.