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

如何在Django admin列表视图中设置可编辑字段

Django Admin列表页设置指定字段可编辑的实现方案

完全可以实现,Django Admin原生提供list_editable配置项满足这个需求。

实现步骤

  • 找到你注册申请表单模型的Admin类,在其中添加list_editable配置,注意需要可编辑的字段必须同时在list_display配置中声明,否则会触发启动报错。

示例代码如下,假设你的申请表单模型名为Application,需要编辑的状态字段名为status:

from django.contrib import admin
from .models import Application

@admin.register(Application)
class ApplicationAdmin(admin.ModelAdmin):
    # 列表页展示字段,必须包含要可编辑的status字段
    list_display = ["apply_id", "applicant", "submit_time", "status", "create_time"]
    # 配置列表页可直接编辑的字段
    list_editable = ["status"]

使用效果

配置完成后刷新Admin的申请列表页,status字段会自动渲染为可交互表单控件:

  • 如果是带choices的选择类型字段,会展示为下拉选择框
  • 如果是布尔类型字段,会展示为复选框
  • 你可以同时修改多条申请的状态,下拉到列表底部点击「保存」按钮即可批量生效,无需进入每条申请的详情编辑页。

可选补充配置

如果需要对列表页修改的状态做校验,可以重写Admin类的save_model方法实现自定义校验逻辑,示例:

def save_model(self, request, obj, form, change):
    # 示例校验:禁止将已通过的申请修改为草稿状态
    if obj.status == "draft" and Application.objects.filter(id=obj.id, status="approved").exists():
        raise ValueError("已通过的申请无法退回草稿状态")
    super().save_model(request, obj, form, change)

内容的提问来源于stack exchange,提问作者AlwaysLearning

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:36:02