revision-up-to: | 8961 (1.0) |
---|
Django の Admin サイトはモデルに対するイントロスペクションによって、動的に 管理サイトを構築しています。 databrowse も同様に、モデル定義からリッチなブ ラウジングウェブサイトを生成します。
Note
databrowse は 非常に 新しいアプリケーションで、まだ活発な開発下にあ ります。次の Django のリリースまでには相当変更が加えられるでしょう。
そのことさえ念頭におけば、 databrowse 自体はとても簡単に利用でき、コー ドを書く必要もありません。ですから、ごくごくわずかに時間を費してコード を書くだけで試せます。
Django に databrowse のデフォルトのテンプレートを教えます。やり方は いくつかあります:
databrowse サイトにいくつかモデルを登録します:
from django.contrib import databrowse
from myapp.models import SomeModel, SomeOtherModel
databrowse.site.register(SomeModel)
databrowse.site.register(SomeOtherModel)
モデルの インスタンスではなくクラス を登録してください。
このコードは、何らかのタイミングで実行される場所であればどこに書いて もかまいません。例えば URLconf (urls.py) に書くのがよいでしょう。
URLconf を変更して、mod:~django.contrib.databrowse モジュールを import します:
from django.contrib import databrowse
そして、以下の一行を追加します:
(r'^databrowse/(.*)', databrowse.site.root),
プレフィクスはなんでも構いません -- databrowse/ でも db/ でも なんでも好きなプレフィクスを使ってください。
Django サーバを起動して /databrowse/ をブラウザで表示してください。
たった数行追加するだけで、ビューへのアクセスをログインしているユーザに限定 できます。まず、以下の import 行を URLconf に追加します:
from django.contrib.auth.decorators import login_required
次に、 URLconf を変更して、 databrowse.site.root() ビューを django.contrib.auth.decorators.login_required() で修飾 (decorate) し ます:
(r'^databrowse/(.*)', login_required(databrowse.site.root)),
ユーザ認証のドキュメント にあるような、ログインを サポートするための URLconf を設定していないのなら、 以下のようなマッピングも追加しておきます:
(r'^accounts/login/$', 'django.contrib.auth.views.login'),
最後のステップは、 django.contrib.auth.views.login() で必要なログイン フォームの作成です。 ユーザ認証のドキュメント に は、テンプレートの詳細版と簡略版の両方を記載しています。
Aug 31, 2012