Django报错:设置DateField的empty_label时出现unexpected keyword argument错误
解决SelectDateWidget设置empty_label报错的问题
嘿,我一眼就发现问题所在了——你把empty_label参数放错位置啦!
报错的核心原因是:empty_label是SelectDateWidget的专属配置参数,并不是forms.DateField的参数。你现在直接把它传给了DateField,所以才会抛出__init__() got an unexpected keyword argument 'empty_label'这个错误。
修正后的表单代码
你只需要把empty_label移动到SelectDateWidget的初始化参数里就行,完整代码如下:
class NewPost(forms.ModelForm): release_date = forms.DateField( widget=forms.SelectDateWidget( attrs={'class': 'form_input_select_date'}, years=YEARS, empty_label="Nothing" # 把empty_label放在Widget的参数里 ), required=False ) class Meta: model = Post fields = ['release_date'] # 别忘了通过Meta类关联模型和字段
额外提示
- 你的模型中
release_date字段已经设置了null=True, blank=True,表单里的required=False和这个配置是匹配的,这部分没问题。 - 如果后续需要给多个使用
SelectDateWidget的字段统一设置empty_label,可以自定义一个Widget类来复用配置,不用每次都重复写参数。
内容的提问来源于stack exchange,提问作者Humza Din
相关产品推荐
相关产品推荐

