2

管理サイトに関する第 6 章のDjango Bookでは、urls.py に次の URL パターンを追加するように指示されています。

urlpatterns = patterns('',
    # ...
    (r'^admin/', include(admin.site.urls)),
    # ...
)

しかし、私のシステムで機能させるには、次の行のコメントを外す必要がありました。

(r'^admin/(.*)', admin.site.root),

誰かが違いについて教えてもらえますか?

4

4 に答える 4

7

残念ながら、ガブリエルとアンティの両方が間違った方向に進んでいます。

admin.site.rootバージョン 1.0 の動作です。1.0 または 1.0.2 をダウンロードした場合は、それを使用する必要があります。

ただし、まだリリースされていない 1.1 の一部である、ごく最近、Django の管理者の URL 処理にいくつかの変更がありました。これらは主に、reverse() 関数を使用して管理 URL を検索できるようにするためのものです。そのため、最近コードをチェックアウトした場合は、admin.site.urls.

あなたのリンクは、バージョン 1.1 に更新されている Django Book の第 2 版へのリンクです。Gabriel が参照しているドキュメントも、新しいバージョンを含む現在のチェックアウト用です。

(完全を期すために、newforms-admin がマージされる前の Django のバージョン、1.0 より前のバージョンはoradmin.urlsではなくを使用していることに注意してください。)admin.site.urlsadmin.site.root

于 2009-06-03T18:45:49.993 に答える
4

次の点に注意してください。(.*) が下の 2 番目のエントリにあるため、苦労しました。

動作しますが非推奨です:

urlpatterns = patterns('',
(r'^admin/(.*)', admin.site.root)), )

正しくなく、部分的に機能します:

urlpatterns = patterns('',
(r'^admin/(.*)', include(admin.site.urls)), )

正しく、うまく機能します:

urlpatterns = patterns('', (r'^admin/', include(admin.site.urls)), )

于 2011-03-09T00:29:25.190 に答える
0

Django Book はバージョン 0.9.6 について述べています。それ以来、管理者は書き直されました。admin.site.rootDjango 1.0 では、URL の残りを内部的に解析する単一のビュー ( ) によって管理者全体が提供されます。

0.96.3のadmin ディレクトリを1.0.2の対応するディレクトリと比較します。urls.py後者にはありません。

于 2009-06-03T18:17:02.500 に答える
0

関数のソースコードからadmin.site.root

root(self, request, url): 管理アプリのメイン URL ルーティングを処理します。

[...] メソッドは、登録されたモデルのコレクションの完全な管理インターフェイスを提供する Django ビュー関数として使用できます。

于 2009-06-03T18:25:09.787 に答える