如何将链接/ url放入Django的网站主页?

Bri*_*unt 21 python django django-urls

在Django模板,有没有在上下文中的变量(例如{{ BASE\_URL }},{{ ROOT\_URL }}或者{{ MEDIA\_URL }}是一个可以用它来链接到home一个项目的网址是什么?

即如果Django在项目的根目录中运行,那么{{ R }}模板中的变量(让我们称之为R)就是/.如果根URL是子文件夹,http://host/X/则变量{{ R }}将是/X/(或http://host/X/).

这看起来很简单,但我找不到答案.:) 谢谢!

Jon*_*nan 40

您可以提供用于处理主页名称的URL配置并使用:

urls.py:

from django.conf.urls.defaults import *

urlpatterns = patterns('myproject.views',
    url(r'^$', 'index', name='index'),
)
Run Code Online (Sandbox Code Playgroud)

模板:

<a href="{% url index %}">...
Run Code Online (Sandbox Code Playgroud)

更新:较新版本的Django需要在视图名称周围加引号:

<a href="{% url 'index' %}">...
Run Code Online (Sandbox Code Playgroud)

Django Book中的这个注释提供了一些关于将应用程序部署到子目录的技巧:

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

  • 在Django 1.5中,我发现我必须执行<a href="{% url "index" %}"> ...(即将名称放在引号中),否则它会抱怨空的第一个参数. (8认同)

mip*_*adi 11

我总是使用类似的东西<a href="/">(当然,假设你的家就在根本上).我似乎记得曾经这样看过一次,并且找不到这条路径的Django变量; /无论如何,无论如何,似乎很容易.


小智 5

在您的管理员中,转到“站点”并设置域。

传递context_instance=RequestContext(request)到有问题的模板。

{{ SITE_URL }}现在,在任何这些模板中使用,您就大功告成了。

Django Book 第 10 章包含的信息比您了解上下文处理器位所需的信息要多。