Django 自动导入manage.py shell中的所有db表

Django 自动导入manage.py shell中的所有db表,django,Django,在输入提示时,是否有一个片段或简单的方法来导入所有django表 例如,我的命令通常是这样的: >>> from userprofile.models import Table >>> Table.objects... 这样,只要输入提示符,就已经导入了表。谢谢。您可以这样做: >>> from django.conf import settings >>> for app in settings.INSTALLED_AP

在输入提示时,是否有一个片段或简单的方法来导入所有django表

例如,我的命令通常是这样的:

>>> from userprofile.models import Table
>>> Table.objects...
这样,只要输入提示符,就已经导入了表。谢谢。

您可以这样做:

>>> from django.conf import settings
>>> for app in settings.INSTALLED_APPS:
...   module = __import__(app)
...   globals()[module.__name__] = module
...
不过,您将获得完全限定的名称
userprofile.models.Table
而不是
Table

添加了
manage.py
的命令,该命令正是这样做的

from django.db.models import get_models
for _class in get_models():
    globals()[_class.__name__] = _class
在这里,所有已安装的模型都可以在全球范围内使用,并使用它们的类名引用它们。阅读django.db.models.get_models的文档,了解更多信息:

定义:获取模型(self、app\u mod=None、include\u auto\u created=False、include\u deferred=False) 文档字符串: 给定包含模型的模块,返回模型列表。 否则,返回所有已安装型号的列表

默认情况下,自动创建的模型(即没有 不包括显式中间表)。然而,如果你 指定include_auto_created=True,它们将为

默认情况下,为满足延迟属性而创建的模型 查询不包括在模型列表中。然而,如果 如果您指定include_deferred,则它们将被删除