django - forms-字段错误 - 为<tablename> </tablename>指定的未知字段(a,l,_)

时间:2013-08-01 09:51:54

标签: django django-models django-forms

我正在form.py中创建一个表单,我有:

from django.forms import ModelForm
from ver11.models import studentdetails
class studentform(ModelForm):
     class Meta:
          model=studentdetails
          fields='__all__'

但是我收到以下错误:

Unknown field(s) (a, l, _) specified for studentdetails

请指导我完成这个

2 个答案:

答案 0 :(得分:2)

我猜您使用的是Django 1.5或以前的版本。 __all__仅存在于Django 1.6 +中:

  

在版本1.6之前,“所有”快捷方式不存在,但省略   fields属性具有相同的效果。省略两个字段和   exclude现已弃用,但将继续像以前一样工作直到   版本1.8

所以将代码更改为:

from django.forms import ModelForm
from ver11.models import studentdetails

class studentform(ModelForm):
     class Meta:
          model = studentdetails
          # omit the fields totally

另请阅读PEP8了解名称惯例和风格。

答案 1 :(得分:1)

在Django 1.5或之前,字段应该是可以删除的,如列表或元组,你给它一个字符串,这也是一个可迭代的,但它被解释为('a', 'l', '_')

尝试

fields = ['__all__']

然而,你可以把它放在外面,一切都是默认的。

另请注意,fields = ('__all__')仍然会给您出现此错误,因为这不是一个真正的元组,您需要fields = ('__all__',)来说服python你意味着一个元组。