Django'TestForm'对象没有属性'fields'

时间:2018-04-26 11:32:51

标签: python django forms dropdownbox

我正在使用django:

我正在尝试将views.py中的元组列表传递到下拉框表单但是我收到此属性错误

forms.py

import logging                                                                   

from django import forms                                                         

log = logging.getLogger(__name__)                                                

class TestForm(forms.Form):                                                    

    def __init__(self, *args, **kwargs):                                         
        testlist = kwargs.pop('testlist',None)                               
        log.info(regionlist)                                                     
        self.fields['testlist'] = forms.ChoiceField(choices=testlist)        
        super(TestForm, self).__init__(*args, **kwargs) 

views.py

form = forms.RegionForm(regionlist=data)     

我是否使用正确的方法在views.pyforms.py之间传递变量?

1 个答案:

答案 0 :(得分:9)

您需要先调用super,以便超类设置fields属性。

def __init__(self, *args, **kwargs):                                         
    testlist = kwargs.pop('testlist', None)
    log.info(regionlist)
    super(TestForm, self).__init__(*args, **kwargs)
    self.fields['testlist'] = forms.ChoiceField(choices=testlist)