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

如何在Django Admin中添加与模型无关的复选框并获取其值?

Django Admin添加与模型无关的复选框并获取值

要实现这个需求,你可以按以下步骤操作:

1. 自定义Admin表单,添加复选框字段

首先创建一个继承自ModelForm的自定义表单,在里面添加一个和模型无关的布尔字段作为复选框:

from django import forms
from .models import Device

class DeviceAdminForm(forms.ModelForm):
    # 添加复选框字段,required=False表示不是必填项
    do_extra = forms.BooleanField(label='执行额外操作', required=False)

    class Meta:
        model = Device
        fields = '__all__'  # 或者指定模型的具体字段

2. 在DeviceAdmin中绑定自定义表单

修改你的DeviceAdmin类,指定使用上面创建的自定义表单:

class DeviceAdmin(admin.ModelAdmin):
    form = DeviceAdminForm  # 绑定自定义表单

    def save_model(self, request, obj, form, change):
        # 从form的cleaned_data中获取复选框的值
        if form.cleaned_data.get('do_extra'):
            do_extra_actions()  # 执行你的额外操作
        super().save_model(request, obj, form, change)

这样一来,在Device的Admin编辑页面就会多出一个名为"执行额外操作"的复选框,当用户勾选并保存时,save_model里的额外操作代码就会被触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:05:29