Django admin添加一个自定义链接,在特定字段旁边的弹出窗口中运行a函数?

2024-10-02 06:26:07 发布

您现在位置:Python中文网/ 问答频道 /正文

希望我的屏幕截图能展示我想要达到的目标。基本上我有一个函数,它检查数据库中所有当前的“DMVPN DSL IP”,然后返回最低的空闲IP,这部分就完成了。不过,我希望能够在管理页面中该字段旁边的弹出窗口中运行该函数。所以当我添加一个新的IP时,我可以检查哪个是免费的,并在现场使用它

我想要的可能吗?在

link sample

编辑

如果函数在页面中运行并填充了它旁边的字段,它会不会更复杂?在

也就是说,单击findfreeip,然后它会用结果填充左边的字段?在


Tags: 函数ip数据库编辑目标屏幕页面现场
2条回答

您可以通过在文件中编写javascript代码来实现自定义.js公司名称:

(function ($) {
    function findFreeIp() {
        $.ajax({
            url: "/custom/findFreeIp",
            success: function(response) {
                         $("input#id_field_name").val(response);
                     }
        });
    }
    $(document).ready(function(){
        $("input#id_field_name").after(' <a href="javascript: findFreeIp();">Find Free IP</a>');
    });
}(this.jQuery));

在您的设置.py如果还没有:

^{pr2}$

在包含应用程序的同一文件夹中创建静态文件夹。为了简化和跟踪,请创建static/app_name/js/custom.js

在你的表单.py在展厅数据表中添加以下行:

class Media:
    js = ('app_name/js/custom.js',)

现在您所要做的就是编写一个自定义视图来返回IP地址

注意:不要忘记在自定义视图中添加@login_required,并进行适当的验证,以防这是基于角色的功能。在

是的,这是可能的,你有办法实现你的目标:

  • 编写一个自定义的widget,然后在管理窗体上使用它。小部件将包括所有的逻辑和弹出窗口的图形
  • find free ip中写入javascript代码逻辑,例如<a href='#' onclick="yourfunc()">find free ip</a>
  • 使用onclick="return showAdminPopup(url);"在admin中打开一个弹出窗口,其中url是具有“findfreeip”逻辑的视图。showAdminPopup()由django admin内的javascript提供。在

对于每个解决方案,您必须从javascript和django后端上编写ajax请求,以便在VPN上使用免费的IP进行响应。基本上在这种观点下,响应将是你的免费ip功能的结果。 如果弹出窗口是一个新的浏览器窗口或一个层(比如modal或tips),你就必须写一点css和html。在

相关问题 更多 >

    热门问题