首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django-grappelli多次按下“保存”按钮

django-grappelli多次按下“保存”按钮
EN

Stack Overflow用户
提问于 2014-06-26 21:22:06
回答 1查看 593关注 0票数 2

在我的应用程序django 1.6.5中,我使用的是django-grappelli管理界面。默认情况下,管理表单有“保存”和“保存并添加另一个”按钮。然而,用户有时会“双击”保存按钮,或者在保存完成之前单击保存按钮,然后单击“保存并添加另一个”。不幸的是,这似乎在模型上执行了两个"save“事件,并在数据库中创建了重复的记录-尽管有唯一的"autoinc”键。有没有一种简单的方法可以防止保存按钮在默认表单上多次触发?

EN

回答 1

Stack Overflow用户

发布于 2014-06-27 10:29:08

嗯,没有快速反应的人。我丑陋的变通方法是覆盖grappelli "submit_line.html“模板,为输入类型提供ids:

代码语言:javascript
复制
{% load i18n %}
<footer class="grp-module grp-submit-row grp-fixed-footer">
    <header style="display:none"><h1>Submit Options</h1></header>
<ul>
    {% if show_delete_link %}
        <li class="grp-float-left"><a href="delete/" class="grp-button grp-delete-link">{% trans "Delete" %}</a></li>
    {% endif %}
    {% if show_save %}
        <li><input id="save" type="submit" value="{% trans 'Save' %}" class="grp-button grp-default" name="_save" /></li>
    {% endif %}
    {% if show_save_as_new %}
        <li><input id="savenew" type="submit" value="{% trans 'Save as new' %}" class="grp-button" name="_saveasnew" /></li>
    {% endif %}
    {% if show_save_and_add_another %}
        <li><input id="saveadd" type="submit" value="{% trans 'Save and add another' %}" class="grp-button" name="_addanother" /></li>
    {% endif %}
    {% if show_save_and_continue %}
        <li><input id="savecont" type="submit" value="{% trans 'Save and continue editing' %}" class="grp-button" name="_continue" /></li>
    {% endif %}
    </ul>
</footer>

然后,我编写了一个(可能编码糟糕的) jquery脚本,以便在单击按钮时禁用这些按钮。由于他们都提交了表单并重新显示,这似乎是可行的。

代码语言:javascript
复制
(function($) {

$(document).ready(function() {
    $('#save').click(function (e) {
        $('#saveadd').click(false);
        $('#savecont').click(false);
        $('#save').click(false);
    })
    $('#saveadd').click(function (e) {
        $('#saveadd').click(false);
        $('#savecont').click(false);
        $('#save').click(false);
    })
    $('#savecont').click(function (e) {
        $('#saveadd').click(false);
        $('#savecont').click(false);
        $('#save').click(false);
    })
});
}(django.jQuery));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24431741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档