从哪里开始自定义报告 Python/Django
Where to Start with Custom Reporting Python/Django
我正在尝试寻找一种方法来构建可用于 Django 项目的强大报告库。
本质上,我正在寻找一种访问功能列表(报告)的方法,我可以允许最终用户将其附加到 Django 模型。
例如,假设我有一个 Employee 对象。好吧,我有一个名为 reports.py 的模块,其中包含越来越多的可能报告,这些报告采用员工对象并输出报告,通常采用 JSON 形式。可能有提交的时间卡数量、创建的监督数量等。
我希望能够 link 通过名为(职位描述)的 FK 将那些更改的报告列表更改为 Employee 对象,以便管理员可以根据职位描述创建自定义报告。
我尝试过的:
直接模型方法:对某些事情有好处,但它需要程序员在模板中调用它们或通过 API 来生成一些输出。由于可用报告不断变化,我不想对任何内容进行硬编码,而是允许最终用户从可用报告列表中进行选择并将它们附加到相关模型(例如 JobDescription)。
dir(reports):我可以提供一个表格,其中 select 值是 dir(reports) 的结果,但我会得到 [=36] 的名称=] 在文件中调用,而不仅仅是可用报告列表
我错过了什么吗?有没有办法创建一个自定义 class,我可以从中调用所有可用的方法?我什至从哪里开始使用这种类型的架构?
我真的很感谢任何关于要走的路的输入。真的只是 'look in this direction' 回复将不胜感激。
我要做的是扩展您的 dir(reports)
想法并创建一个动态加载的模块系统。有一个包含 .py 文件的文件夹,其中包含模块 classes。 Here's an example of how you can dynamically load classes in Python.
每个 class 都有一个名为 getReportName()
的静态函数,因此您可以向用户显示一些可读的内容,以及一个成员函数 createReport(self, myModel)
,它获取模型并在它。
然后只向用户显示所有可能的报告,用户选择一个,然后您 运行 在所选 class 上 createReport
。
将来您可能会考虑为不同的模型设置不同的报告文件夹,这也应该可以通过使用模型的 __name__
属性进行反射来实现。
我正在尝试寻找一种方法来构建可用于 Django 项目的强大报告库。
本质上,我正在寻找一种访问功能列表(报告)的方法,我可以允许最终用户将其附加到 Django 模型。
例如,假设我有一个 Employee 对象。好吧,我有一个名为 reports.py 的模块,其中包含越来越多的可能报告,这些报告采用员工对象并输出报告,通常采用 JSON 形式。可能有提交的时间卡数量、创建的监督数量等。
我希望能够 link 通过名为(职位描述)的 FK 将那些更改的报告列表更改为 Employee 对象,以便管理员可以根据职位描述创建自定义报告。
我尝试过的:
直接模型方法:对某些事情有好处,但它需要程序员在模板中调用它们或通过 API 来生成一些输出。由于可用报告不断变化,我不想对任何内容进行硬编码,而是允许最终用户从可用报告列表中进行选择并将它们附加到相关模型(例如 JobDescription)。
dir(reports):我可以提供一个表格,其中 select 值是 dir(reports) 的结果,但我会得到 [=36] 的名称=] 在文件中调用,而不仅仅是可用报告列表
我错过了什么吗?有没有办法创建一个自定义 class,我可以从中调用所有可用的方法?我什至从哪里开始使用这种类型的架构?
我真的很感谢任何关于要走的路的输入。真的只是 'look in this direction' 回复将不胜感激。
我要做的是扩展您的 dir(reports)
想法并创建一个动态加载的模块系统。有一个包含 .py 文件的文件夹,其中包含模块 classes。 Here's an example of how you can dynamically load classes in Python.
每个 class 都有一个名为 getReportName()
的静态函数,因此您可以向用户显示一些可读的内容,以及一个成员函数 createReport(self, myModel)
,它获取模型并在它。
然后只向用户显示所有可能的报告,用户选择一个,然后您 运行 在所选 class 上 createReport
。
将来您可能会考虑为不同的模型设置不同的报告文件夹,这也应该可以通过使用模型的 __name__
属性进行反射来实现。