You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 16:00:52