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

标签 python django forms dropdownbox

我正在使用 Django:

我试图将元组列表从 views.py 传递到下拉框表单,但我收到此属性错误

表单.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 之间传递变量?

最佳答案

需要先调用super,让父类(super class)设置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)        

关于python - Django 'TestForm' 对象没有属性 'fields',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50041919/

相关文章:

django - 如何在 models.py 中使用基类但不让 django 为基类创建表?

python - 改善Elasticsearch性能

python - Pygame 只绘制屏幕的 1/4

python - Django Autocomplete Light 创建新选择

python - Django 休息框架不验证自定义用户模型

php - 防止 nicEdit 创建外部标签

PHP:检查是否有任何发布的变量为空 - 表单:所有字段都需要

html - CSS 对 Angular 边框输入字段

python - Numpy 已安装但仍然出现错误

python - 通过添加小数时间增量增量来删除重复的日期时间索引值