Django formsets可以删除头部吗

2024-10-01 04:56:55 发布

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

我是django的新人,请忍受我。。在

用django formsets创建了一个模板,除了我不能给cantudelete列提供标题外,它一切正常。在

我的Djangoviews.py看起来像:

def add_expenditure(request):
    context = RequestContext(request)
    ExpFormSet = modelformset_factory(Expenditure,extra=1,max_num=10,fields=('exp_date', 'description','amount'),can_delete=True)

    if request.method == 'POST':
        formset = ExpFormSet(request.POST)
        if formset.is_valid():
            formset.save(commit=True)
            formset = ExpFormSet()
        else:
            print "errors in formset are ",formset.errors
    else:
        formset = ExpFormSet(queryset=Expenditure.objects.none())
    return render_to_response('moni/add_expenditure.html', {'formset':formset}, context)

模板格式代码如下:

^{pr2}$

模板看起来像:

enter image description here

我想要的是有一个头删除复选框。。就在amount旁边。我试着再增加一个标题,但似乎没有按预期工作。有人能提供什么建议吗。。下面是添加一个标题后的效果

    <form id="expenditure_form" method="post"  action="/moni/add_expenditure/">
        {% csrf_token %}
        <table border=10>
            <tr>
                <th>Serial No.</th>
                <th><label >Date:</label></th>
                <th><label for="id_description">Description:</label></th>
                <th><label for="id_amount">Amount</label></th>
                <th><label for="id_delete">Delete</label></th>
            </tr>

            {{ formset.management_form }}
            {% for form in formset %}
                <tr>
                    <td>{{forloop.counter}}</td>
                    {% for field in form %}
                        <td>  {{ field.class }} {{ field }}
                            {% if field.name == "exp_date" %}
                                 <a href="javascript:void(0)" class="todaylink" id= {{forloop.parentloop.counter0}}  >Today</a>
                            {% endif %}
                        </td>

                {% endfor %}
                </tr>
                <br>

            {% endfor %}

        </table>
        <input type="submit" name="submit" value="Create Expenditure" />
    </form>

enter image description here

关于如何在“删除”复选框上方创建此标题,有何建议?在


Tags: formadd模板id标题fieldforrequest
1条回答
网友
1楼 · 发布于 2024-10-01 04:56:55

问题是

{% for field in form %}
    <td>  {{ field.class }} {{ field }}
        {% if field.name == "exp_date" %}
        <a href="javascript:void(0)" class="todaylink" id= {{forloop.parentloop.counter0}}    >Today</a>
        {% endif %}
    </td>
{% endfor %}

这将创建5个TD,而标题中有4个TD。在

请试试这个

^{pr2}$

也可以在删除前删除元素复选框。在

相关问题 更多 >