我正在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
请指导我完成这个
答案 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你意味着一个元组。