在我的 Django 模板中使用复选框表单时没有 POST 响应

Posted

技术标签:

【中文标题】在我的 Django 模板中使用复选框表单时没有 POST 响应【英文标题】:No POST response when using checkbox form in my Django template 【发布时间】:2011-06-21 01:51:04 【问题描述】:

您好,我正在尝试删除用户选择的事件 复选框以检查要删除的事件。但对于 每当我打电话 request.POST.get('event_list') 什么都没有 即使选中了框,我也收到了,但最终我什么也没有。 这是我的模板和应该删除所选视图的视图 事件。

 % if event_list %
       % for event in event_list%
               %csrf_token%
               <input type="checkbox" name="event_list"
id="event forloop.counter " />
               <label for="event forloop.counter "> event.title </
label><br />
       % endfor %
       <input type = 'submit' value = 'delete checked'>
       </form>
       <p>removal<p/>    %comment% this is what should be
removed%endcomment%
       % if delete_error %
               <p>delete_error</p>
           % endif %

views.py

def EventDelete(request):
       removal = request.POST.get('event_list')
       if removal:
               removal.delete()
       else:
               delete_error = "You didn't delete anything"
       return redner_to_response("detail.html", 'delete_error':
delete_error, 'removal': removal,
context_instance=RequestContext(request))

我不确定为什么删除中没有任何内容,不应该有吗 事件的标题在哪?不幸的是,我对 html 及其工作原理知之甚少 :( 我非常感谢您的帮助 :) 我觉得这是一个简单的修复,我只是错过了一个小细节。谢谢:)

【问题讨论】:

redner_to_response 应该是 render_to_response 【参考方案1】:

复选框没有任何价值,因此您只会“打开”发送到服务器。

这个:

<input type="checkbox" name="event_list"
 id="event forloop.counter " />

应该阅读

<input type="checkbox" name="event_list"
 id="event forloop.counter " value=" forloop.counter " />

然后(一旦服务器收到一个 id 列表),您处理它的代码看起来是错误的,您需要以某种方式加载 id 列表,并找出要删除的内容。你可能想要类似的东西

removal = request.POST.get('event_list')
for id in removal:
     event = get_object_or_404(Event, pk=id)
     event.delete()

我认为你有很多东西要学!查看firebug 以监控实际发送回服务器的内容。转到w3schools to learn about forms,并阅读 django 文档以处理删除。

【讨论】:

以上是关于在我的 Django 模板中使用复选框表单时没有 POST 响应的主要内容,如果未能解决你的问题,请参考以下文章

如何在Django的视图功能中访问Django模板中表单中的复选框[关闭]

在 Symfony 4.4 中覆盖复选框表单字段产生重复标签且没有字段

Django 表单需要重新提交

在Django中,提交表单2后如何保留表单数据?

Django - 不使用表单或模型表单时在模板中呈现模型选择

姜戈。如何在布尔表单字段上应用 css 样式?