AttributeError:“NoneType”对象没有属性“visible_fields”

Posted

技术标签:

【中文标题】AttributeError:“NoneType”对象没有属性“visible_fields”【英文标题】:AttributeError: 'NoneType' object has no attribute 'visible_fields' 【发布时间】:2018-05-13 13:47:25 【问题描述】:

我正在尝试在我的表单上向<input> 添加一个类。按照this question 的第一个答案的说明,我在表单的__init__ 方法中添加了一些代码。但是我得到了标题中显示的错误。

forms.py

class SignupForm(UserCreationForm):
    email = forms.EmailField(max_length=200, help_text='Required')
    first_name = forms.CharField(max_length=30)
    last_name = forms.CharField(max_length=30)

    def __init__(self, *args, **kwargs):
        form = super(SignupForm, self).__init__(*args, **kwargs)
        for visible in form.visible_fields():
            visible.field.widget.attrs['class'] = 'form-control'

    class Meta:
        model = User
        fields = ('username', 'email', 'password1', 'password2', 'first_name', 'last_name',)

【问题讨论】:

【参考方案1】:

您收到错误是因为super() 调用返回None。在__init__ 方法中,您可以使用self 访问表单的属性。

def __init__(self, *args, **kwargs):
    super(SignupForm, self).__init__(*args, **kwargs)
    for visible in self.visible_fields():
        ...

【讨论】:

以上是关于AttributeError:“NoneType”对象没有属性“visible_fields”的主要内容,如果未能解决你的问题,请参考以下文章

AttributeError:'NoneType'对象没有属性'upper'[关闭]

%Matplotlib - AttributeError: 'NoneType' 对象没有属性 'lower'

BeautifulSoup:AttributeError:“NoneType”对象没有属性“文本”

Elastic Beanstalk 部署错误:AttributeError :: 'NoneType' 对象没有属性 'split'

AttributeError:“NoneType”对象没有“当前”属性

每次我使用 pip 时都会出现“AttributeError:'NoneType'”