有什么想法可以让我将django项目中所有django模型的模式导出为外部格式吗?

vaqhlq81  于 2023-06-25  发布在  Go
关注(0)|答案(1)|浏览(99)

我从我的经理那里得到一个要求,他们需要一个通用的python脚本,将django项目中所有模型的模式导出到excel中。泛型,因为我们希望对我们公司中运行在Django上的多个微服务做同样的事情。Excel中的每一行都应该包含有关该模型中字段的信息。每个模型都应该在新表中表示。我不知道该怎么做。
我能想到的一种方法是使用递归来迭代代码库中的所有文件,并查找文件名,如models.py,并在其中迭代以找到不同的类并提取信息,如字段类型,约束,最大长度/大小,是否为空等。但不确定这是否是一个好的方法,因为边缘情况处理将是困难的情况下,我认为。

i2byvkas

i2byvkas1#

好吧,让django来为你处理应用程序和模型:

from pathlib import Path

from django.apps import apps
from django.conf import settings

project_root = Path(settings.BASE_DIR)

# Loop through all apps
for app_name, app_conf in sorted(apps.app_configs.items()):

    # Local app within project_root?
    try:
        Path(app_conf.path).relative_to(project_root)
    except ValueError:
        # Not a local app => skip
        continue

    # Loop through all models of app_name
    for model_name, model_cls in sorted(apps.all_models[app_name].items()):
        print(f'App: {app_name:<25s} Model: {model_name}')

        # Now work with the model ..
        #  .. create documentation
        #  .. export documentation

这应该给予你一个开始你的任务。

相关问题