Javascript 模仿Django';s";加上「;管理中相关字段的按钮

Javascript 模仿Django';s";加上「;管理中相关字段的按钮,javascript,jquery,django,Javascript,Jquery,Django,当您按下“+”按钮时,Django为相关字段提供了这个管理功能,我假设您可以添加新数据,然后通过jQuery进行附加。我看了代码,在任何地方都找不到 我将如何在PHP中模拟这一点 因此,一旦添加了新的“类别”,ID就会附加到它后面窗口中的“类别”字段上。然后你提交表格和wala。这是怎么回事 这是Django Admin的一个很好的特性,即使是SonatAdminBundle for Symfony也没有实现。 我浏览了源代码,发现了以下JavaScript函数: django/contrib

当您按下“+”按钮时,Django为相关字段提供了这个管理功能,我假设您可以添加新数据,然后通过jQuery进行附加。我看了代码,在任何地方都找不到

我将如何在PHP中模拟这一点


因此,一旦添加了新的“类别”,ID就会附加到它后面窗口中的“类别”字段上。然后你提交表格和wala。这是怎么回事

这是Django Admin的一个很好的特性,即使是SonatAdminBundle for Symfony也没有实现。 我浏览了源代码,发现了以下JavaScript函数:

django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js

function showAddAnotherPopup(triggeringLink) {
    var name = triggeringLink.id.replace(/^add_/, '');
    name = id_to_windowname(name);
    href = triggeringLink.href
    if (href.indexOf('?') == -1) {
        href += '?_popup=1';
    } else {
        href  += '&_popup=1';
    }
    var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes');
    win.focus();
    return false;
}
也许你可以使用这个函数,用PHP实现你自己的逻辑。单击“+”符号时,函数的调用方式如下:

函数调用是以一种老式的方式进行的,没有使用jQuery


很抱歉,我无法进一步帮助您。

可能重复@Yogesh:不太可能:这涉及到整个django管理员:这只是问一个小功能。Matthew是正确的。我问的是Django管理员的一个非常具体的特性,而不是整个管理员本身。所以现在没有人会回答我的问题,因为它被标记为一个副本…魔法就在弹出窗口中。当您提交弹出窗口中的表单时,它将通过AJAX提交表单。当该请求完成时,弹出窗口中的JS将更新父窗口的DOM。有关更多信息,请阅读
window.opener
上的文档。