gpt4 book ai didi

python - 将数据发布到 Django 管理表单

转载 作者:行者123 更新时间:2023-11-28 23:06:41 25 4
gpt4 key购买 nike

我正在编写一个 Django 应用程序,其数据将来自不同的来源,包括 Excel 电子表格。我已经编写了一些代码来从这些工作表中进行初始导入,但我不喜欢每次添加行时都重新导入整个数据的想法——而且我的客户不想自己重新输入数据.

一个可能的解决方案是添加一个带有简单文本区域的表单,用户可以在其中复制粘贴整行电子表格。然后 View 可以拆分数据、对其进行预处理并将其发布到相应对象的标准管理表单。

理想情况下,它的行为就像用户真的从这个表单发布过一样:如果数据通过验证,则创建对象,如果没有,则重新显示(管理)表单,并带有漂亮的红色错误框。

所以我想我只需要类似的东西

from django.shortcuts import redirect
[...]
return redirect(to, method=POST, *args)

但是好像没有。

我还考虑过将数据作为大查询字符串传递,例如 http://.../admin/app/object/add/?ID=1234&name=toto& ...但是我的模型有很多字段,有一对多和多对多的内联,可能有很长的文本字段等。所以这种方法似乎比必要的更麻烦。

知道如何获得类似 POST 重定向的东西吗?还是解决这个问题的另一种方法?

最佳答案

如果您已经在编写特定于您的表单的代码,为什么不在同一函数中创建对象,而不是尝试向管理站点伪造一个 POST 请求?

对我来说,使用默认的管理表单听起来比使用现有的预处理 View 开始创建或更新对象更难。

我只是通过 get_urls 将您的预处理 View 连接到您的 ModelAdmin 定义方法,设置一个可以像

一样简单的模板
<form action="." method="post">
<textarea name="data"></textarea>
<input type="submit" value="submit" />
</form>

并手动处理输入表单中的数据request.POST.get('data', '').split(',')(或者你有什么)并开始填充你的模型.

完成后,发送消息并重定向回您的应用 View 或更改 ListView 。

request.user.message_set.create(message="Finished populating X models")
return http.HttpResponseRedirect('../')

关于python - 将数据发布到 Django 管理表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4671067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com