使用django模板url标记时,项目名称会自动插入到url中

时间:2010-02-03 01:45:29

标签: django django-templates django-urls templatetags

我将'url'模板标记应用于我当前Django项目中的所有链接。

我的网址名称如此......

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

这允许我访问/登录我的站点的根目录。我的模板标签定义如此......

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

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

2 个答案:

答案 0 :(得分:3)

显然,我的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 Apache 2.2 mod_python 3.3.1(我想...... :)) Ubuntu Hardy 8.04.4

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

答案 1 :(得分:0)

在你的网址中,django比其他网站更早遇到这个网址模式。

由于网址解析是逐个完成的,只需在主要网址中移动主要网址,然后在主要网址中移动urls.py