我在我的 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已经过时
在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已经过时
在Django 1.8中,我该怎么做呢?
这应该能够工作,
from django.apps import apps
apps.get_models()
get_models
方法返回所有已安装模型的列表。你也可以传递三个关键字参数include_auto_created
、include_deferred
和include_swapped
。
如果你想要获取特定应用的模型,可以使用以下方式。
from django.apps import apps
myapp = apps.get_app_config('myapp')
myapp.models
这将返回该应用程序模型的OrderedDict实例。
admin.site.register(myapp.models[0])
,但是我得到了 'str' object has no attribute '_meta'
的错误提示。 - user3214546OrderedDict
实例。你需要调用 myapp.models.values()
。 - Rod Xavier