-
全てのFieldで共通にセットすることができるoption *
-
models.pyをディレクトリにする場合はmodels/init.pyにModelクラスをimportする。
-
テーブル名
デフォルトでは<アプリケーション名>_<Model名>になる。
Metaクラスの db_table にテーブル名を指定することができる。 -
idが自動的に生成される*
-
validationはfull_cleanで行う。
-
独自のvalidation処理はcleanに記述する
-
field一覧 *
-
カスタムフィールドの作成方法 *
-
Fieldに指定することができるオプション一覧 *
-
Field.validatorsに指定するvalidatorについて *
-
Many-to-many relationships *
-
Meta *
-
related_nameは外部参照しているレコードをを参照する属性名を指定する。
継承する際の注意点
<Model名>_setでモデルを外部キーにしているレコードを取得することができる。* -
related_query_nameは外部参照しているレコードのカラムでフィルターする際の外部参照しているレコードの名前を指定する。
-
接続するDBを振り分ける *
-
BaseModelはMeta.abstract=Trueにする *
-
マイグレーションの対象にしない場合はmanaged=False *
-
レコード
- 以下のようなエラーが発生した場合 *
1005, "Can't create table database_name.#sql-1456_ab (errno: 150)
以下の設定をする *
'OPTIONS': { 'init_command': 'SET default_storage_engine=MyISAM', }
-
_meta *
モデルで定義されているfieldの一覧を取得する。
Options.get_fields(include_parents=True, include_hidden=False)
* -
多対多や外部キー *
外部キーにはそれに対応したModel
多対多はattributeにaddする -
多対多のレコードを一度に全部取得するにはprefetch_related()を使用する *
-
Modelに関連したurlはModel.get_absolute_url(self)に書く *
-
choicesの選択されているラベルを表示する方法 *
-
models.ForeignKeyの第1引数
'Foo'
: そのアプリケーションのFooモデル
'A.Bar'
: AアプリケーションのBarモデル -
参照しているレコードが削除された時、それを参照しているレコードも削除したい場合は
ForeignKeyのon_deleteにmodels.CASCADEを指定する。 - ModelをFormに利用したいときはModelFormを使用する