标签:django-forms html python django checkbox
我需要编写一个视图来获取POST数据,然后查找找出已选中的复选框,然后从ID匹配的数据库中删除项目,我需要帮助.
最初,这是一个复选框问题.在编辑订单表格中,有一个项目列表.现在,我可以使用一些JavaScript删除该项目,但是无法保存,因为我需要从数据库中完全删除它.我尝试使用我的编辑顺序视图使用delete()删除项目,但是那不起作用.我可能在做其他事情,但我不知道怎么办.
delete_item = request.POST.get('delete_item', None)
if request.method == 'POST':
form = forms.OrderForm(request.POST, instance = order)
if form.is_valid() and save_item is not None:
form.save(True)
request.user.message_set.create(message = "The order has been updated successfully.")
return HttpResponse("<script language=\"javascript\" type=\"text/javascript\">window.opener.location = window.opener.location; window.close();</script>")
if status is not None and contact is not None and save_status is not None and delete_item is not None:
try:
for id in status_items:
item = models.StorageItem.objects.get(pk = id)
delete = item
delete.delete()
current_status = models.ItemStatusHistory(item = item, contact = contact, status = status,
user = request.user)
current_status.save()
except:
pass
request.user.message_set.create(message = "Status successfully changed for {0} items".format(len(status_items)))
{% for item in items %}
<tr class="items_table_row">
<td><input type="checkbox" name="item" value="{{item.pk}}" checked="checked"{% endif %}>
<td>{{item.tiptop_id}}</td><td>{{item.alternative_id}}</td><td>{{item.title}}</td><td>{{item.type}}</td><td>{{item.format}}</td>
<td><span id="{{item.pk}}" name="type">{{item.itemstatushistory_set.latest}}</span></td><td>{{item.itemstatushistory_set.latest.date.date|date:"d M Y"}}</td>
<td><a href="{% url tiptop.views.edit_item item.client.pk item.pk %}" onclick="return showAddAnotherPopup(this);">Edit</a></td>
</tr>
{% endfor %}
解决方法:
给定您的模板,使用带有名称=“ item” … .delete()的复选框.
Items.objects.filter(id__in=request.POST.getlist('items')).delete()
你有例外吗?是否曾经运行delete()代码?提交打印声明.
您有“大量代码”,很多我们不熟悉的条件以及try / except块,因此我只想确保视图实际上已进入删除阶段.
更新:这是您的代码陌生人可以遵循的粗略代码.
如果status不为None且contact不为None且save_status不为None且delete_item不为None:
您为什么不只检查是否存在按下的特定按钮呢?
# html
<input type="submit" name="save" value="Save Items" />
<input type="submit" name="delete" value="Delete Items" />
# view
if request.POST.get('delete'):
Items.objects.filter(id__in=request.POST.getlist('items')).delete()
elif request.POST.get('save'):
form = Form(request.POST)
# ... so on
标签:django-forms,html,python,django,checkbox 来源: https://codeday.me/bug/20191023/1913744.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。