Django オンラインドキュメント和訳 更新しました。 Revision 5272 (2007/05/17). 「Django プロジェクトに協力するために - コーディングスタイル - モデルのスタイル 」「モデル API リファレンス - モデルのメソッド - get_absolute_url 」「配信フィードフレームワーク - 高水準フレームワーク - Feed クラス 」についての記述が更新されています。
以下、 diff -r 5241:5272 の主な変更分です。
フィールド名は全て小文字で,キャメルケース (camelCase のような書き方) はせず,アンダースコアを使います.
以下のような書き方をします:
class Person(models.Model): first_name = models.CharField(maxlength=20) last_name = models.CharField(maxlength=40)以下のような書き方をしてはなりません:
class Person(models.Model): FirstName = models.CharField(maxlength=20) Last_Name = models.CharField(maxlength=40)class Meta はフィールドの定義を書いた 後 に書きます.また,フィー ルド定義とクラス定義の間には一行空行を入れます.
以下のように書きます:
class Person(models.Model): first_name = models.CharField(maxlength=20) last_name = models.CharField(maxlength=40) class Meta: verbose_name_plural = 'people'以下のような書き方をしてはなりません:
class Person(models.Model): first_name = models.CharField(maxlength=20) last_name = models.CharField(maxlength=40) class Meta: verbose_name_plural = 'people'以下のような書き方もよくありません:
class Person(models.Model): class Meta: verbose_name_plural = 'people' first_name = models.CharField(maxlength=20) last_name = models.CharField(maxlength=40)モデルの内部クラスや標準メソッドの順番は以下のようにします (ただし, どれも必須ではないので省略してもかまいません):
- 全てのデータベースフィールド
- class Meta
- class Admin
- def __str__()
- def save()
- def get_absolute_url()
- カスタムのメソッド定義
choices をモデルフィールドに定義する場合,選択肢は,各選択項目の タプルからなるタプルで定義します.定義はモデルモジュールの冒頭か,各 モデルクラスのすぐ上に置き,全て大文字の変数名を付けます.例えば以下 のようにします:
GENDER_CHOICES = ( ('M', 'Male'), ('F', 'Female'), )
Note
get_absolute_url() の返す文字列は ASCII 文字だけで構成しなければな りません (RFC 2396 の URI 仕様でそのように要求されています).また, 必要に応じて URL エンコードせねばなりません. get_absolute_url() を 使うコードやテンプレートが, get_absolute_url() の返す文字列を,追 加の処理を施さなくても直接利用できるようにせねばならないのです.
get_absolute_url() や item_link() は,いずれも通常の Python 文字列で URL を返さねばなりません.また, get_absolute_url() と 同様, item_link() の返す値は直接 URL に組み込めなければなりませ ん.このため,プログラマは,必要に応じて URL のクオート処理や変換を行っ て,全ての文字が ASCII 文字からなる値に変換する責任があります.
