📜  django 获取所有模型 - Python (1)

📅  最后修改于: 2023-12-03 14:40:47.659000             🧑  作者: Mango

Django 获取所有模型

在 Django 中,可以通过以下方法获取所有定义的模型:

from django.apps import apps

models = apps.get_models()

这个方法会返回所有应用程序中定义的模型的一个 QuerySet。

如果想获取某个应用程序下的所有模型,则可以使用以下代码:

from django.apps import apps

myapp = apps.get_app_config('myapp')
models = myapp.get_models()

这个方法会返回指定应用程序下的所有模型的一个 QuerySet。

通过遍历 QuerySet 中的每个模型,可以获取模型的名称、相关的表名、字段等信息:

for model in models:
    print(f"Model name: {model.__name__}")
    print(f"Table name: {model._meta.db_table}")
    print(f"Fields: {model._meta.get_fields()}")

其中, model.__name__ 获取模型的名称, model._meta.db_table 获取与模型关联的表名, model._meta.get_fields() 获取模型的所有字段,返回一个字段列表。

此外,还可以使用 model._meta.fields 获取包含所有字段的列表,或者使用 model._meta.get_field(field_name) 获取特定字段。

以上就是 Django 获取所有模型的方法和示例代码。