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

Django ChoiceField添加form-control类报错:TypeError缺失master参数

解决Django表单ChoiceField添加form-control类时的TypeError问题

错误原因

你遇到的TypeError: __init__() missing 1 required positional argument: 'master',本质是导入的Select组件不正确。大概率是误导入了Django admin模块下需要额外参数的Select类(比如关联模型专用的组件),而非表单基础库中无需额外参数的forms.Select。

解决方案

方案1:修正导入并使用正确的Select组件

确保你从django.forms导入正确的Select,示例代码如下:

from django import forms
from .models import Student

class StudentForm(forms.Form):
    delivery_type = forms.ChoiceField(
        choices=Student.DELIVERY_CHOICES,
        # 明确使用forms.Select,而非其他来源的Select
        widget=forms.Select(attrs={'class':'form-control'})
    )

方案2:使用ModelForm更便捷(推荐)

如果你的表单是基于Student模型创建的,直接使用ModelForm可以更简洁地配置widget,还能避免重复定义choices:

from django import forms
from .models import Student

class StudentForm(forms.ModelForm):
    class Meta:
        model = Student
        fields = ['delivery_type']
        widgets = {
            'delivery_type': forms.Select(attrs={'class': 'form-control'})
        }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 19:33:23