2011-11-02 15 views
5

いつ新しいContentTypesが作成され、どのようにこれを自分自身で起動できますか?Django:新しいモデル用のContentTypesの作成をトリガーする方法は?

私には、新しいモデルなどを作成する南部の移動がたくさんあります。すべての操作が完了したら、これらの新しいオブジェクトのアクセス許可を既に関連するアクセス許可を持つグループに割り当てる最終的なデータ移行が行われます。 (ここで「関連するアクセス許可」はアプリケーション内で意味を成すように選択されています)

ただし、新しく作成したモデルのContentTypesは、そのデータマイグレーションを実行するとまだ利用できません。他のすべての移行を最初に実行してから、追加のデータ移行を実行するだけです。私。コマンドを2回実行します。しかし私の場合、この手動パッチを作成することは現実的ではありません。

私はデータマイグレーションを実行する直前に新しいモデルのContentTypesの作成を手動でトリガーしたいと思います。これはどうですか?

+0

どのようにContentTypeを取得していますか? [get_for_model](https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#django.contrib.contenttypes.models.ContentTypeManager.get_for_model)は通常動作します。 orm ['contenttypes.contenttype']内のctのための – Tobu

+0

。objects.filter(app_label = 'client') しかし、私は単にそれについて明示できると思います。良い提案 –

答えて

7

ContentType.objects.get_for_model()を使用すると、オンデマンドでContentTypeインスタンスが作成されます(キャッシングも追加されます)。

+0

これは、一般的なケース(「アプリのすべてのコンテンツタイプ」)を書くことができないという欠点がありますが、この問題を解決するのに役立ちます。ありがとう –

関連する問題