python - 在 Django admin 中添加新项目,然后重定向到另一个页面
问题描述
我想从进入 Django 管理员添加页面的自定义模板中添加一个链接:
- 它将更改的模型是动态的,如下面的代码所示,但它将有一个选择字段,我希望将其填充并禁用进一步更改,直到尽可能保存;
- 保存后返回到相同的模板(通过视图);
- 用新数据更新我在模板中的图表。
我认为最简单的方法是将添加页面打开到弹出窗口中,但是在模型保存后它会返回列表并且不会关闭弹出窗口,也许有一个属性可以做到这一点?我试过_is_popup
了,但它什么也没做。
我尝试的另一件事是搞乱名为submit_line.html
和admin_modify.py
templatetag 的管理模板。
<a href="/admin/core/{{ indicator_key }}/add/?_is_popup=1" target="popup"
onclick="window.open('/admin/core/{{ key }}/add/?_is_popup=1',
'popup','width=600,height=800'); return false;"></a>
解决方案
好吧,在深入研究 Django 源代码后,我解决了:
模板.html
<a href="#" target="popup"
onclick="window.open('/admin/<app>/<model>/add/?_popup=1&hospital={{ hospital.id }}',
'popup','width=600,height=800'); return false;"></a>
在这种情况下,它将作为弹出窗口打开,并hospital
自动填写他们的 ID。
模板.js
function dismissChangeRelatedObjectPopup(window, value, obj, new_obj) {
window.close();
location.reload();
}
function dismissDeleteRelatedObjectPopup(window, value) {
window.close();
location.reload();
}
function dismissAddRelatedObjectPopup(window, value, obj) {
window.close();
location.reload();
}
此 javascript 是根据您的需要添加的,这是在弹出窗口中保存模型后会发生的情况。在我的情况下,我只使用了 add 函数,因为我需要重新加载页面来更新一些图表,所以我这样做了location.reload();
推荐阅读
- reactjs - 我可以给我的反应选择菜单引导类吗?
- c# - 从 .net core 2.1 升级到 .net core 3.1 时出错
- python - SimpleImputer TypeError:在“str”和“int”的实例之间不支持“<”
- apache-kafka - Kafka循环分发策略不起作用
- angular - ngModel 不修改值
- unit-testing - 有哪些不同类型的测试替身及其用途?
- python - exe下载失败
- javascript - Angular 9 不导航到锚点
- google-cloud-functions - 谷歌云http认证函数到函数
- jquery - 引导箱提示使用数据库中的选项进行选择