首页 > 解决方案 > 在 Django admin 中添加新项目,然后重定向到另一个页面

问题描述

我想从进入 Django 管理员添加页面的自定义模板中添加一个链接:

我认为最简单的方法是将添加页面打开到弹出窗口中,但是在模型保存后它会返回列表并且不会关闭弹出窗口,也许有一个属性可以做到这一点?我试过_is_popup了,但它什么也没做。

我尝试的另一件事是搞乱名为submit_line.htmladmin_modify.pytemplatetag 的管理模板。

<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>

标签: pythondjangourl

解决方案


好吧,在深入研究 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();


推荐阅读