Django新手问题:如何实现单条数据验证后单独设置Boolean字段为True
解决方案
1. 修正视图函数(views.py)
原代码中form.update(flaag=True)会批量更新所有未审核条目,改为仅更新指定ID的单条记录:
def approve(request): # 过滤所有未审核条目,布尔字段直接用False判断即可 unapproved_items = QuesModel.objects.filter(flaag=False) if request.method == "POST": # 获取提交的目标条目ID item_id = request.POST.get("item_id") if item_id: # 仅更新对应ID的条目 QuesModel.objects.filter(id=item_id).update(flaag=True) context = {"unapproved_items": unapproved_items} return render(request, 'approve.html', context)
2. 调整模板页面(approve.html)
为每个未审核条目单独生成提交表单,传递对应条目ID:
{% for item in unapproved_items %} <div class="item-container"> <!-- 展示条目内容,根据实际字段调整 --> <h4>{{ item.xxx_field }}</h4> <p>{{ item.yyy_field }}</p> <!-- 单条目的审核表单 --> <form method="POST" action=""> {% csrf_token %} <!-- 隐藏字段传递当前条目ID --> <input type="hidden" name="item_id" value="{{ item.id }}"> <button type="submit">标记为已审核</button> </form> </div> {% empty %} <p>暂无待审核条目</p> {% endfor %}
3. 模型字段修正(models.py)
修正字段注释的拼写错误(Aprroved改为Approved),保持字段名与代码一致:
class QuesModel(models.Model): # 其他字段... flaag = models.BooleanField('Approved', default=False)
修改完成后,点击单个条目下的审核按钮,只会将该条目的flaag字段设为True,不会批量更新所有未审核数据。
内容的提问来源于stack exchange,提问作者replaalpi
相关产品推荐
相关产品推荐

