Django管理员中的所有 ,我想输入与生成报告相关的表单字段。您希望在报告中使用的字段:报告名称,报告类型,开始和结束日期,报告字段等。
如何获取这些输入,从请求中获取输入,将这些输入传递给API(在后台),然后处理它(以类似队列的方式),最后创建一个CSV或PDF进行下载? / p>
我很适合创建管理模型表单,我认为在管理员提交表单时抓取输入,然后我想我只是将这些输入传递给我的其他API代码来处理......
我的问题是:
/change/
页面?这是最好的做法吗?在处理管理员时,我无法找到这样的例子。我不是Python的新手,但对Django来说有点新鲜。
答案 0 :(得分:0)
没有人会回答。因此,我将分享我的高级通用解决方案。
celery.py
并修改您在{芹菜'文档中显示的__init__.py
。关键"陷阱"是他们放置" proj"的地方,你应该把项目的实际名称,而不是" proj"。admin.ModelAdmin
班级中,覆盖save_model(self, request, obj, form, change)
以捕获从管理表单提交的表单数据。tasks.py
内的芹菜任务函数。例如:get_report.delay(name, start, end, type)
。请注意 .delay 部分,因为它允许它在后台运行,而无需在提交表单后在屏幕上等待。save_model(...)
中,您仍需要在结尾处致电super().save_model(request, obj, form, change)
。celery -A scorecard worker --pool=solo -l info
(启动工作人员 - 你在终端中键入它),或者,你可以安装eventlet并使用eventlet作为--pool=eventlet
值代替--pool=solo
。