如何从CSV文件在Django中自动创建表及相关model.py
想象一下:
你创建了一个内容管理系统(CMS),这个系统会要求你输入一个应用的名称和一个csv文件。然后,它会自动生成这个应用,基于csv文件中的列创建所需的model.py,激活它的管理页面,并且只允许你通过django admin拥有对这个新表的完全权限。接着,它还会把这个应用插入到url.py中,并为它创建view.py。
这样,你只需要上传一个csv文件,给你的应用起个名字,哇!你就有了一个可以操作的管理页面。
那么,有没有办法在django中从csv文件创建一个应用,或者至少生成一个model.py呢?或者有没有什么django应用可以做到这一点?
注意:不要只关注(./manage.py inspectdb > models.py)这个方法。
1 个回答
0
虽然这里没有涉及到真正创建一个 models.py 文件和应用程序,但你可能想了解一下如何在运行时动态创建模型类。你可以有一些“元”模型,用来存储动态模型的信息,然后让你的 CSV 视图把数据导入这些模型中,创建类,并把它们注册到管理后台。大概就是这样的意思。
其实,创建一个真正的应用目录,包括 models.py、views.py 等文件是相对简单的(只需要创建目录,创建文件,然后根据 CSV 数据写入格式化的字符串)。编辑项目的 settings.py 和 urls.py 文件,以及重新加载模块,也不会太难。不过,我不太会相信那些自动生成的 Django 应用,除非先仔细看看它们。