【问题标题】:How does one put a link / url to the web-site's home page in Django?如何在 Django 中放置指向网站主页的链接/网址?
【发布时间】:2010-09-18 14:21:41
【问题描述】:

在 Django 模板中,上下文中是否有一个变量(例如 {{ BASE\_URL }}{{ ROOT\_URL }}{{ MEDIA\_URL }} 可用于链接到项目的 home url?

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

这似乎很简单,但我找不到答案。 :) 谢谢!

【问题讨论】:

    标签: python django django-urls


    【解决方案1】:

    您可以为用于处理主页的 URL 配置命名并使用该名称:

    urls.py:

    from django.conf.urls.defaults import *
    
    urlpatterns = patterns('myproject.views',
        url(r'^$', 'index', name='index'),
    )
    

    模板:

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

    更新:较新版本的 Django 需要在视图名称两边加上引号:

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

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

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

    【讨论】:

    【解决方案2】:
    (r'^$', 'django.views.generic.simple.redirect_to', {'url': '/home/'}),
    

    工作正常:)

    【讨论】:

      【解决方案3】:

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

      context_instance=RequestContext(request) 传递给相关模板。

      现在在任何这些模板中使用{{ SITE_URL }},你就可以了。

      Chapter 10 of the Django Book 拥有的信息比您重新审视该上下文处理器位所需的信息还要多。

      【讨论】:

        【解决方案4】:

        我总是使用&lt;a href="/"&gt; 之类的东西(当然,假设您的家位于根目录)。我似乎记得曾经查找过这个,但找不到该路径的 Django 变量;无论如何,/ 似乎很容易,无论如何。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多