我是Django和网络开发的新手。
我有一个简单的模板,在表格中有一些数据,表格带有复选框,在表格外部是一个提交按钮,但所有表格都相同。
<form action="{% url 'delLogin' %}" method="POST">{% csrf_token %}
<table class="table table-striped table-hover">
<thead>
<tr><th>Total: {{ object_list.count }}</th><th></th><th></th><th></th></tr>
<tr><th>Login</th><th>Customer</th></th><th></th></tr>
</thead>
<tbody>
{% for obj in object_list %}
<tr>
<td> <a href="{% url 'DetailLogin' obj.id_login %}"> {{ obj.id_login }}</a></td>
<td> <a href="{% url 'DetailCust' obj.customer %}"> {{ obj.customer }} </a></td>
<td>
<input type="checkbox" name="{{ obj.id_login }}" value="{{ obj.id_login }}"/>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<input type="submit" value="Delete selected">
</form>
</div>
这应该将数据发布到另一个视图:
def deleteObjects(request):
template = 'Gestione/delObj.html'
objects = []
for obj, value in request.POST.items():
objects.append(value)
context = {'objects' : objects}
return render(request, template, context)
呈现给此模板:
<form action="" method="post">{% csrf_token %}
{% if objects %}
{% for object in objects %}
<p>Are you sure you want to delete "{{ object }}"?</p>
{% endfor %}
{% endif %}
<input type="submit" value="Confirm" />
</form>
页面加载时没有错误,但&#34;对象&#34;没有显示,我无法理解为什么。
提前感谢您的帮助
答案 0 :(得分:0)
我认为request.POST.items()没有返回你认为它返回的内容。你应该引发一个ValueError或者什么来看看它返回什么,然后你可以修改你的for循环来适当地解析它。
答案 1 :(得分:0)
您所寻找的是动态表格:
自己的表单类:
from django import forms
class DeleteForm(forms.Form):
def __init__(self, own_param, *args, **kwargs):
super(DeleteForm, self).__init__(*args, **kwargs)
self.fields['field'] = own_param
答案 2 :(得分:-1)
&#34;页面加载时没有错误,但&#34;对象&#34;没有显示....&#34; 这条线引起了我的注意 问题在于您尝试将复选框的名称和值分配给objectlist变量。
<input type="checkbox" name="{{ obj.id_login }}" value="{{ obj.id_login }}"/>
代替写:
<input type="checkbox" {{ obj.id_login }}/>