django - 使用 Django 一次更新多条记录

标签 django django-templates records

我想在左侧创建一个带有复选框的记录列表......有点像 Gmail 中的收件箱。然后,如果用户选择了这些复选框中的一些或全部,则可以通过单击按钮来更新所选记录(顺便说一句,只会更新一个字段)。

我被困在如何做到这一点上....想法?

显示代码

{% for issue in issues %}
   <tr class="{% cycle 'row1' 'row2' %}">
      <td><input name="" type="checkbox" value="{{ issue.id }}" /></td>
      <td>{{ issue.description }}</td>
      <td>{{ issue.type }}</td>
      <td>{{ issue.status }}</td>
      <td>{{ issue.date_time_added|date:"d, M Y" }}</td>
      <td>{{ issue.added_by }}</td>
      <td>{{ issue.assigned_to }}</td>
   </tr>
{% endfor %}

最佳答案

Use the queryset update() method :

id_list = list_of_ids_from_checkboxes
MyModel.objects.filter(id__in=id_list).update(myattribute=True)

您的显示 HTML 缺少 name复选框的值。如果您在所有复选框中只有一个名称,那么 ID 列表将被传递到一个 POST 变量中,您可以直接从 request.POST 获得该变量。 (假设您将表单作为帖子提交,您应该这样做):
id_list = request.POST.getlist('checkboxname')

关于django - 使用 Django 一次更新多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2743802/

相关文章:

python - 在 Django 模板中显示抓取的结果

ruby-on-rails - rails 4 x paper_trail : track which attributes are updated and display their new value

syntax - 复制 OCaml 中的字段

django - 想要在 django 模板中显示姓氏的第一个字符

python - 获取 Django View 中的复选框列表

javascript - 选择不适用于模态的选项

django - 通过 Django admin 删除对象时,是否可以禁用相关对象的生成?

haskell - Haskell 的 "composing lenses using function composition"具有奇怪的参数顺序是如何实现的?

python - 在 Python 中将字符串转换为列表

django - 在 Django 中,限制用户访问特定的 url