Pergunta

Nos modelos de Django, existe uma variável no contexto (por exemplo {{ BASE\_URL }}, {{ ROOT\_URL }}, ou {{ MEDIA\_URL }} aquele pode usar para vincular ao home URL de um projeto?

Ou seja, se o django estiver executando na raiz de um projeto, a variável (vamos chamá -la de r) {{ R }} em um modelo seria /. Se o URL da raiz for um sub-dobrador http://host/X/ a variável {{ R }} seria /X/ (ou http://host/X/).

Parece dolorosamente simples, mas não consigo encontrar uma resposta. :) Obrigada!

Foi útil?

Solução

Você pode dar a configuração de URL que está usando para lidar com o nome da página inicial e usar isso:

urls.py:

from django.conf.urls.defaults import *

urlpatterns = patterns('myproject.views',
    url(r'^$', 'index', name='index'),
)

Modelos:

<a href="{% url index %}">...

ATUALIZAR: Versões mais recentes do Django exigem aspas em torno do nome da visualização:

<a href="{% url 'index' %}">...

Esta nota no livro Django tem algumas dicas sobre como implantar seus aplicativos em um subdiretório:

http://www.djangobook.com/en/1.0/chapter20/#cn43

Outras dicas

Eu sempre uso algo como <a href="/"> (Supondo que sua casa esteja na raiz, é claro). Parece que me lembro de procurar isso uma vez e não consegui encontrar uma variável de django para esse caminho; a qualquer custo, / Parecia muito fácil, de qualquer maneira.

Em seu administrador, vá para "sites" e defina o domínio.

Passar context_instance=RequestContext(request) para os modelos em questão.

Agora usa {{ SITE_URL }} Em qualquer um desses modelos e você é dourado.

Capítulo 10 do Livro Django Tem mais informações do que você precisará de regulamentá -lo no bit do processador de contexto.

(r'^$', 'django.views.generic.simple.redirect_to', {'url': '/home/'}),

funciona bem :)

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