【问题标题】:Add new item in Django admin then redirect to another page在 Django admin 中添加新项目,然后重定向到另一个页面
【发布时间】:2019-06-22 00:01:43
【问题描述】:

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

  • 它将更改的模型是动态的,如下面的代码所示,但它会有一个选择字段,我希望它已经填充并禁用进一步更改,直到尽可能保存为止;
  • 保存后返回到相同的模板(通过视图);
  • 用新数据更新模板中的图表。

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

我尝试的另一件事是使用名为 submit_line.htmladmin_modify.py 模板标签的管理模板。

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

【问题讨论】:

    标签: python django url


    【解决方案1】:

    在深入挖掘 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();

    【讨论】:

      猜你喜欢
      • 2012-06-17
      • 2014-02-22
      • 1970-01-01
      • 2017-06-08
      • 1970-01-01
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多