__init__() 得到了一个意外的关键字参数“attrs”

Posted

技术标签:

【中文标题】__init__() 得到了一个意外的关键字参数“attrs”【英文标题】:__init__() got an unexpected keyword argument 'attrs' 【发布时间】:2013-05-05 03:33:31 【问题描述】:

forms.py

class ImportExcelForm(Form):
    file  = forms.FileField(attrs='class':'rounded_list',)

我正在尝试在表单中将 css 类添加到我的filefield。我收到此错误"__init__() got an unexpected keyword argument 'attrs'"

我做错了什么。

谢谢

【问题讨论】:

【参考方案1】:

attrs 不是字段的参数,而是小部件的参数。

file = forms.FileField(widget=forms.FileInput(attrs='class': 'rounded_list'))

请注意,某些浏览器不允许对文件输入进行样式设置。

【讨论】:

我试过你的回答,得到这个错误“在模块 event.views 中尝试了 contact_list。错误是:'module' 对象没有属性 'FileWidget'” 抱歉,应该是FileInput,已更正。 为什么要隐藏按钮?那么就没有办法选择和上传文件了。 应该是forms.FileField 吗?【参考方案2】:

尽管@Daniel Roseman 发布的解决方案也是 Django 文档中推荐的解决方案,但它仍然对我不起作用。对我有用的是:

class ImportExcelForm(Form):
    file  = forms.FileField()
    file.widget.attrs.update('class': 'rounded_list')

【讨论】:

这很有帮助,因为@Daniel 的某些解决方案对我不起作用:type = forms.ChoiceField(widget=forms.ChoiceField(attrs='disabled': 'disabled')) 但此表单有效type = forms.ChoiceField() type.widget.attrs.update('disabled': 'disabled')

以上是关于__init__() 得到了一个意外的关键字参数“attrs”的主要内容,如果未能解决你的问题,请参考以下文章

TypeError: __init__() 得到了一个意外的关键字参数 '__no_builder' Kivy

TypeError: __init__() 得到了一个意外的关键字参数“重新引用”

TypeError: __init__() 得到了一个意外的关键字参数“编码”

Django __init__() 得到了一个意外的关键字参数“用户”

__init__() 在 python/django 中得到了一个意外的关键字参数“mime”

TypeError:__init__() 得到了一个意外的关键字参数“categorical_features”:onehotencoder