【问题标题】:Project name inserted automatically in url when using django template url tag使用 django 模板 url 标签时在 url 中自动插入项目名称
【发布时间】:2011-01-12 10:41:55
【问题描述】:

我正在将“url”模板标签应用于我当前 Django 项目中的所有链接。

我的网址是这样命名的......

url(r'^login/$', 'login', name='site_login'),

这允许我在我的站点根目录访问 /login。我的模板标签是这样定义的......

<a href="{% url site_login %}">

它工作正常,除了 Django 自动将该 url 解析为 /myprojectname/login,而不是 /login。两个网址都可以访问。为什么?是否有删除项目名称的选项?所有 url 标签都会出现这种情况,而不仅仅是这个。

【问题讨论】:

标签: django django-templates django-urls templatetags


【解决方案1】:

显然,我的 apache2 配置有问题。我基本上是从 django 网站上复制了指令,稍作修改:

http://docs.djangoproject.com/en/dev/howto/deployment/modpython/#basic-configuration

我改成这样,我的 Django 项目将在我网站的根目录中提供服务。

我不得不从 django.root 选项中删除“/mysite”。我的最终输出是这样的,在 django.root 之后没有任何值:

<Location "/"> 
    SetHandler python-program 
    PythonHandler django.core.handlers.modpython 
    SetEnv DJANGO_SETTINGS_MODULE mysite.settings 
    PythonOption django.root 
    PythonDebug On 
</Location> 

为了记录,我正在运行:

Django 1.0 阿帕奇 2.2 mod_python 3.3.1(我认为... :)) Ubuntu 哈代 8.04.4

从这里复制:http://groups.google.com/group/django-users/msg/5e79ed1e694a3776

【讨论】:

    【解决方案2】:

    在你的 url conf 中,django 比另一个更早遇到这个 url 模式。

    由于 url 解析是一一完成的,因此只需在 main urls.py 中包含之前移动主登录名

    【讨论】:

    • 只有一种网址格式。第二个,“/myprojectname/login”,正在神奇地创建。我试图弄清楚为什么会发生这种魔法以及是否可以选择改变它。
    猜你喜欢
    • 2021-11-10
    • 2013-04-21
    • 2023-03-20
    • 2010-09-20
    • 2013-05-04
    • 2010-12-19
    • 2011-05-09
    • 1970-01-01
    • 2022-11-25
    相关资源
    最近更新 更多