Como alguém coloca um link / URL na página inicial do site da Web em Django?
-
03-07-2019 - |
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!
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:
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 :)