djangoのcontenttypes
contenttypesはdjangoでいうアプリの様なもので、modelsとかfieldsとかがある。そのうちのmodelsの中にContentTypeというモデルがある。これがメイン。
ContentTypeとは
簡単に言えば、プロジェクトにインストールされたモデルを管理するモデル インストールされたオブジェクトは自動で生成される。
プロパティ
app_label これは、モデルがどのアプリケーションに含まれているかを示す。例えば、プロジェクトmysite内のpollアプリだったらpollになる。ついでに、常にこれはpythonのimport文のドットで区切った最後の単語になる。
model これは、モデルの名前。models.Modelを継承したクラスの名前。
name barbose nameだと思われる。
メソッド
ContentType.get_object_for_this_type(**kwargs) モデルのオブジェクトを持ってくる
ContentType.model_class() モデルクラスを持ってくる
contenttypesはアプリケーションなので、同じ様にモデルとかも扱うことができる。 objectsでマネージャーを取って来たりすることができる。
Generic relations
オブジェクトとモデルクラスを結びつける機能。ForeignKeyの強化版。
例えば、ForeignKeyを使うとき、AからBに関係を張りたいとき、AとBっていう名前が必要になる。だけど、ContentTypeを挟んでおくと、これは動的に変えられる様になる。
Reverse Generic Relations
GenericForeignKeyを設定しておくと逆参照ができる。MenyToMenyのGeneric版。 GenericFordignKeyをもつモデルに対して、GenericRelationを張ると参照できる様になる。