首页 > 解决方案 > linux 上的 FF92.0 引入了 django 3.2 内联表单的缓存问题

问题描述

在使用内联表单时,我注意到 FF 92.0(Manjaro Linux,但我猜可能是所有 linux)有一个奇怪的行为。

设置:

page.js:

function insert_inlinedets_form () {
    let form_idx = $('#id_details-TOTAL_FORMS').val();
    console.log("inserting new form " + form_idx);
    let newrow = $('<tr></tr>').appendTo($('#details_form'));
    newrow.append($('#empty_form_inlinedets').html().replace(/__prefix__/g, form_idx));
    $('#id_details-TOTAL_FORMS').val(parseInt(form_idx)+1);
    console.log("added row to inlinedets formset");
};

function remove_inlinedets_form () {
    console.log("remove last form ");
    let form_idx = $('#id_details-TOTAL_FORMS').val();
    if (form_idx>0) {
        $('#details_form > tr').last().remove();
        $('#id_details-TOTAL_FORMS').val(parseInt(form_idx)-1);    
        console.log("removed row from inlinedets");
        calc_grand_total();                                 // existing rows haven't changed but the total might
    } else {
        $('#id_details-TOTAL_FORMS').val();                 // if no form left, this SHOULD be 0.    
        console.log("No more dets left - nothing done.");
    }
};

html - 空表单:

<div style="display:none">
    <table>
        <thead></thead>
        <tbody>
            <tr id="empty_form_inlinedets">
                {% for field in formset.empty_form %}
                {% if field.is_hidden %}
                <td style="display:none;">{{field}}</td>
                {% else %}
                <td>{{field}}</td>
                {% endif %}         
                {% endfor %}        
            </tr>
        </tbody>
    </table>
</div>

html - 要附加到的目标表:

<div class="table-responsive shadow encart">
    {{ formset.management_form }}
    {{ formset.non_form_errors }}
    <table class="table table-bordered dbase-table" id="bottom_product_form" width="100%" cellspacing="0">
        <caption style="caption-side:top">Products</caption>
        <thead>
            <tr>
                <!-- th content -->
            </tr>
        </thead>
        <tbody id="details_form">
            {% for form in formset %}
            <tr>
                <!-- td content -->
            </tr>
            {% endfor %}
        </tbody>
    </table>
</div>

我已经验证了以下内容:

所以....关于我应该如何解决这个问题的任何想法?什么设置可能导致问题?请在任何答案中考虑:

标签: djangofirefoxdjango-formsbrowser-cache

解决方案


推荐阅读