"django.contrib" 下のアドオン
| revision-up-to: | 7127 (0.97pre SVN) |
|---|
Django は Python の "batteries included" 哲学 を目指しています。 Django には Web 開発における課題を解くための様々な外部オプションツールがついてきま す。
これらのコードは Django 配布物中の django/contrib にあります。このドキュ メントでは、 contrib 下のパッケージをざっと解説し、パッケージを利用する ときに必要な依存関係について説明します。
Note
これらのアドオンの大半、特にモデルやテンプレートタグの定義が入っている アドオンを使うには、パッケージ名 (例えば 'django.contrib.admin') を INSTALLED_APPS 設定に追加して、 manage.py syncdb を再度実行する 必要があります。
admin
Django の自動化管理インタフェースです。詳しくは チュートリアルその 2 を 参照してください。
auth および contenttypes パッケージをインストールしておく必要があります。
comments
単純かつ柔軟なコメントシステムです。まだドキュメントはありません。
contenttypes
コンテンツの「タイプ」をフックしするための軽量フレームワークです。 コンテンツタイプは、インストールされている Django の個々のモデルを指します。
contenttypes のドキュメント を参照してください。
flatpages
「フラット (flat) な」 HTML コンテンツをデータベースで扱うためのフレームワー クです。
flatpages のドキュメント を参照してください。
sites パッケージもインストールしておく必要があります。
formtools
Django の新しいフォーム (django.newforms) に対する高水準の抽象化インタフェー スです。
django.contrib.formtools.preview
「 HTML フォームを表示し、必ずプレビューを行ってからフォームデータを提出す る」というワークフローを抽象化したものです。
フォームプレビューのドキュメント を参照してください。
humanize
データに「人間くささ (human touch)」を与えるための Django テンプレートフィ ルタです。これらのフィルタを有効にするには、 INSTALLED_APPS 設定に 'django.contrib.humanize' を加えます。インストール後、テンプレート上で {% load humanize %} を呼び出せば、以下のフィルタを利用できるようになり ます:
apnumber
1-9 の数字に対して、数をアルファベットで表します。それ以外の数はそのまま数 字で返します。これは Associated Press の書式に従っています。
例:
- 1 は 'one' になります
- 2 は 'two' になります。
- 10 は 10 になります。
渡す値は整数でも、整数を文字列で表したものでもかまいません。
intcomma
整数を三桁ごとにカンマで区切った形式の文字列に変換します。
例:
- 4500 は '4,500' になります。
- 45000 は '45,000' になります。
- 450000 は '450,000' になります。
- 4500000 は '4,500,000' になります。
渡す値は整数でも、整数を文字列で表したものでもかまいません。
intword
大きな整数を読みやすいテキスト表現に変換します。100 万を超えるような値を扱 う場合に便利です。
例:
- 1000000 は '1.0 million' になります。
- 1200000 は '1.2 million' になります。
- 1200000000 は '1.2 billion' になります。
Values up to 1000000000000000 (one quadrillion) are supported.
渡す値は整数でも、整数を文字列で表したものでもかまいません。
ordinal
整数を序数形式の文字列に変換します。
例:
- 1 は '1st' になります。
- 2 は '2nd' になります。
- 3 は '3rd' になります。
渡す値は整数でも、整数を文字列で表したものでもかまいません。
naturalday
開発バージョンの Django で新たに登場した機能です
日付が今日、明日、昨日のいずれかに該当する場合、それぞれ「今日 ("today")」、 「明日 ("tomorrow") 」、「昨日 ("yesterday")」を返します。それ以外の日付の 場合は、引数に渡したフォーマット文字列を使って日付をレンダします。
引数: now と同じ日付フォーマット形式
今日が 2007 年 2 月 17 日とすると、以下のように日付を表示します:
- 16 Feb 2007 は 昨日 に変わります。
- 17 Feb 2007 は 今日 に変わります。
- 18 Feb 2007 は 明日 に変わります。
- 引数を与えない場合、今日、昨日、明日以外の日付は DATE_FORMAT 設定 に従ってフォーマットされます。
localflavor
特定の国や文化でのみ有用な Django の短いコード (snippet) を集めたものです。 例えば、 django.contrib.localflavor.us.forms には、米国の郵便番号 (U.S. zip code) を検証するための USZipCodeField が入っています。
localflavor のドキュメント を参照してください。
markup
テンプレートフィルタのコレクションです。以下の 3 つのマークアップ言語に対す るフィルタを実装しています:
- textile -- Textile 用の実装です
- markdown -- Markdown 用の実装です
- restructuredtext -- ReST (ReStructured Text) 用の実装です
どのフィルタも、各マークアップ言語で書かれたテキストの入った文字列を引数に とり、マークアップ処理済みのテキストの入った文字列を返します。例えば、 textile フィルタは Textile フォーマットで書かれたテキストを HTML に変換 します。
フィルタを有効にするには、 'django.contrib.markup' を INSTALLED_APPS 設定に追加します。その上で {% load markup %} をテン プレートに追加すれば、フィルタを使えるようになります。詳細は django/contrib/markup/templatetags/markup.py のソースコードを参 照してください。
sites
一つのデータベースと Django を使って複数のウェブサイトを操作できるようにす るための軽量フレームワークです。このフレームワークを使うと、オブジェクトを 特定の (一つまたは複数の) サイトに関連づけできます。
sites のドキュメント を参照してください。
syndication
RSS および Atom 形式の配信フィード (syndication feed) をごく簡単に生成する ためのフレームワークです。
配信フィードフレームワークのドキュメント を参照してください。
その他のアドオン
contrib に入れたらよいと思う機能について何かアイデアがあるなら、是非教 えて下さい! コードを書いて、 django-users mailing list に送って下さい。