2

私はUbuntuでmod_wsgi1.3.1+Python2.5.2を使用してDjango1.1rc1とApache2.2.8を使用しています。

Djangoの内部テストWebサーバーではすべて正常に機能しましたが、Apache mod_wsgiに移行した後、のようなすべてのURLが機能/admin/appname/modelname/しなくなりました。次のログで404notfoundエラーが表示されます。

...
^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/私のカスタムURLを含む他のすべての部分は問題なく動作します。

それはDjangoのバグですか、それとも構成の問題ですか?そしてそれを解決する方法は?

4

1 に答える 1

1

名前空間を使用するために 1.1RC1 が管理 URL リゾルバにいくつかの変更を加えたことを知っています。これはあなたの問題かもしれません。

ここを参照してください: http://docs.djangoproject.com/en/dev/releases/1.1-rc-1/

それ以外は、デバッグ トレースの URL の最後の行が /admin/app/xxxx ではなく /admin/app/ にのみ一致するため、URL が正しくないようです。ここの情報が役立つかもしれません。

何らかの理由で、この ^admin/ ^r/(?P\d+)/(?P.+)/$ は正しくないように見えます。

編集:いいえ、それは /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 ファイルは正しいですか?

于 2009-07-27T12:40:46.487 に答える