web-dev-qa-db-ja.com

Django 1.8ですべてのモデルを取得するにはどうすればよいですか?

私はこのコードをadmin.pyで使用しています

from Django.db.models import get_models, get_app

for model in get_models(get_app('myapp')):
    admin.site.register(model)

しかし、私はget_models is deprecatedという警告を受け取ります

Django 1.8でそれを行うにはどうすればよいですか?

19
user3214546

これはうまくいくはずです、

from Django.apps import apps
apps.get_models()

get_modelsメソッドは、インストールされているすべてのモデルのリストを返します。 3つのキーワード引数を渡すこともできますinclude_auto_createdinclude_deferredおよびinclude_swapped

特定のアプリのモデルを取得したい場合は、次のようにすることができます。

from Django.apps import apps
myapp = apps.get_app_config('myapp')
myapp.models

これにより、そのアプリのモデルのOrderedDictインスタンスが返されます。

37
Rod Xavier