【问题标题】:admin/appname/modelname urls does not work with mod_wsgi in Django 1.1rc1admin/appname/modelname urls 不适用于 Django 1.1rc1 中的 mod_wsgi
【发布时间】:2009-07-27 12:33:43
【问题描述】:

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

在 Django 的内部测试网络服务器上一切正常,但是在迁移到 Apache mod_wsgi 后,所有像 /admin/appname/modelname/ 这样的 url 开始不起作用。他们使用以下日志显示 404 not found 错误:

...
^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 的错误还是配置问题?又该如何解决呢?

【问题讨论】:

    标签: django django-urls wsgi django-wsgi


    【解决方案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 文件是否正确?

    【讨论】:

    • 我也知道这些变化。 (我正在跟踪“管理员中不正确的注销链接”票证。)但如果这是原因,Django 内部 Web 服务器也不应该正常工作,但它很好。
    • 由于某种原因,内部服务器似乎更能容忍此类问题。你确定两个位置的 settings.py 和 urls.py 是一样的吗?
    • 我尝试直接在通过 mod_wsgi 运行的项目实例上运行测试服务器,但我遇到了这个问题:stackoverflow.com/questions/1188205/…T_T
    • 另外,这似乎很正确。在此处查看 Django 管理员的源代码:code.djangoproject.com/browser/django/trunk/django/contrib/…
    • 看来你是对的,有一条关于以 r 开头的 url 表示“网络视图”的评论?您在 mod_wsgi 服务器上的权限设置是否正确?你的 admin.py 文件是否正确?
    猜你喜欢
    • 2014-06-29
    • 2016-05-26
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多