admin / appname / modelname urls不适用于Django 1.1rc1中的mod_wsgi

时间:2009-07-27 12:33:43

标签: django django-urls wsgi django-wsgi

我在Ubuntu上使用Django 1.1 rc1和Apache 2.2.8,使用mod_wsgi 1.3.1 + Python 2.5.2。

Django的内部测试Web服务器一切正常,但是在迁移到Apache mod_wsgi之后,像/admin/appname/modelname/这样的所有网址都开始无效。它们使用以下日志显示404未找到的错误:

...
^admin/ ^$
^admin/ ^logout/$
^admin/ ^password_change/$
^admin/ ^password_change/done/$
^admin/ ^jsi18n/$
^admin/ ^r/(?P<content_type_id>\d+)/(?P<object_id>.+)/$
^admin/ ^(?P<app_label>\w+)/$
The current URL, admin/account/userprofile/, didn't match any of these.

奇怪的是,/admin/appname/以及包括我自定义网址在内的所有其他部分工作正常。

是Django的错误还是配置问题?以及如何解决?

1 个答案:

答案 0 :(得分:1)

我知道1.1RC1对管理员URL解析器进行了一些更改以使用命名空间:这可能是你的问题。

见这里:http://docs.djangoproject.com/en/dev/releases/1.1-rc-1/

除此之外,看起来URL不正确,因为调试跟踪中URL的最后一行只匹配/ admin / app /而不是/ admin / app / xxxx。信息here可能会有所帮助。

由于某种原因这个^ admin / ^ r /(?P \ d +)/(?P。+)/ $看起来不正确不会给/ admin // xxx / yyy /?

编辑:没有它给出/ admin / r / xxx / yyy /

我现在无法测试这个,因为我这台计算机上只有1.0.2可用(并且没有mod_wsgi) - 我今晚回家后会在1.1上测试。

修改:看起来像这样

for model, model_admin in self._registry.iteritems():
    urlpatterns += patterns('',
       url(r'^%s/%s/' % (model._meta.app_label, model._meta.module_name),
            include(model_admin.urls))
    )
return urlpatterns

因某些原因无法正常工作,因为调试跟踪中的搜索路径中未包含URL。 admin.py文件是否正确?