Como é que uma pessoa colocar um link / url à página inicial do web-site em Django?

votos
19

Em modelos de Django, há uma variável no contexto (por exemplo {{ BASE\_URL }}, {{ ROOT\_URL }}ou {{ MEDIA\_URL }}que se pode usar para vincular ao homeurl de um projeto?

Ou seja, se o Django está executando na raiz de um projeto, a variável (vamos chamá-lo R) ` R `em um modelo seria /. Se a url raiz é uma sub-pasta http://host/X/da variável ` R `seria /X/(ou http://host/X/).

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

Publicado 22/10/2008 em 17:14
fonte usuário
Em outras línguas...                            


4 respostas

votos
38

Você poderia dar a configuração URL que você está usando para lidar com a home page um nome 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 %}">...

UPDATE: Novas versões do Django requer aspas em torno do nome da vista:

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

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

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

Respondeu 22/10/2008 em 17:19
fonte usuário

votos
10

Eu sempre usar algo como <a href="/">(supondo que sua casa está na raiz, é claro). Eu me lembro de olhar isso de uma vez, e não poderia encontrar uma variável Django para este caminho; de qualquer forma, /parecia muito fácil, de qualquer maneira.

Respondeu 22/10/2008 em 17:17
fonte usuário

votos
4

Em sua administração, vá para "sites" e definir o domínio.

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

Agora use ` SITE_URL `em qualquer um desses modelos e você é ouro.

Capítulo 10 do Livro Django tem mais informação do que você vai precisar regading que pouco processador de contexto.

Respondeu 22/10/2008 em 18:33
fonte usuário

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

funciona bem :)

Respondeu 30/07/2010 em 19:56
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more