Django错误:"'ChoiceField'对象没有属性'is_hidden'"

 ll66068ll你 发布于 2023-01-04 10:38

Django模板在渲染时抛出'AttributeError'.我想要实现的是,在模板中,resolted forn将包含一个选择框,其中包含下面列表中的值.

这是Forms.py文件:

class CallForm (forms.ModelForm):

class Meta():
    model = Call
    widgets = {
         'employee_id' : forms.ChoiceField(choices=FormsTools.EmployeesToTuples(Employee.objects.all()))
    }

说明:

FormsTools.EmployeesToTuples(Employee.objects.all()) --> [(1, u'E1'), (2, u'E2'), (3, u'E3')]

这是django的错误:

Template error:
In template C:\virtualenv\#\#\templates\new_call.html, error at line 7
   'ChoiceField' object has no attribute 'is_hidden'
   1 : {% extends "base.html" %}


   2 : 


   3 : {% block content %}


   4 : 


   5 :         
{% csrf_token %} 6 :
    7 : {{ form.as_p }} 8 :
9 : 10 : 11 :
12 : 13 : {% endblock %} Traceback: File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response 112. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "C:\virtualenv\OmegaManager2\OmegaManager\ServiceManager\views.py" in new_call 32. html = t.render(Context(args)) File "C:\Python27\lib\site-packages\django\template\base.py" in render 140. return self._render(context) File "C:\Python27\lib\site-packages\django\template\base.py" in _render 134. return self.nodelist.render(context) File "C:\Python27\lib\site-packages\django\template\base.py" in render 840. bit = self.render_node(node, context) File "C:\Python27\lib\site-packages\django\template\debug.py" in render_node 78. return node.render(context) File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render 123. return compiled_parent._render(context) File "C:\Python27\lib\site-packages\django\template\base.py" in _render 134. return self.nodelist.render(context) File "C:\Python27\lib\site-packages\django\template\base.py" in render 840. bit = self.render_node(node, context) File "C:\Python27\lib\site-packages\django\template\debug.py" in render_node 78. return node.render(context) File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render 62. result = block.nodelist.render(context) File "C:\Python27\lib\site-packages\django\template\base.py" in render 840. bit = self.render_node(node, context) File "C:\Python27\lib\site-packages\django\template\debug.py" in render_node 78. return node.render(context) File "C:\Python27\lib\site-packages\django\template\debug.py" in render 88. output = self.filter_expression.resolve(context) File "C:\Python27\lib\site-packages\django\template\base.py" in resolve 585. obj = self.var.resolve(context) File "C:\Python27\lib\site-packages\django\template\base.py" in resolve 735. value = self._resolve_lookup(context) File "C:\Python27\lib\site-packages\django\template\base.py" in _resolve_lookup 789. current = current() File "C:\Python27\lib\site-packages\django\forms\forms.py" in as_p 241. errors_on_separate_row = True) File "C:\Python27\lib\site-packages\django\forms\forms.py" in _html_output 156. if bf.is_hidden: File "C:\Python27\lib\site-packages\django\forms\forms.py" in is_hidden 560. return self.field.widget.is_hidden Exception Type: AttributeError at /NewCall/ Exception Value: 'ChoiceField' object has no attribute 'is_hidden'

是什么导致'AttributeError'?怎么修好?谢谢.

1 个回答
  • ChoiceField不是一个小部件 - 它是一个表单字段:

    class CallForm (forms.ModelForm):
        employee_id = forms.ChoiceField(choices=FormsTools.EmployeesToTuples(Employee.objects.all()))
    
        class Meta:
            model = Call
            fields = ['employee_id']
    

    2023-01-04 10:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有