我想在django中向您寻求以下事项的指导:
我使用以下型号:
class QItem(models.Model):
isWhat = models.CharField(max_length=100, blank=True, choices=ISWHAT)
slug = models.SlugField(blank=True)
script = models.CharField(max_length=100)
comment = models.TextField(blank=True, null=True)
author = models.ForeignKey(User)
class QuestionSet(QItem):
items = models.ManyToManyField(QItem, blank=True, through='Ordering',related_name="contained")
class Question(QItem):
answerObject = models.OneToOneField("AnswerObject", blank=True, null=True)
和他们各自的,最基本的ModelForms:
class QuestionForm(ModelForm):
class Meta:
model = Question
class QuestionSetForm(ModelForm):
class Meta:
model = QuestionSet
在一个视图中,呼唤
qset=QuestionFormSet()
print q
工作得很好 .
然而,
q = QuestionForm()
print q
投
Exception Type: AttributeError
Exception Value: 'NoneType' object has no attribute 'label'
在Django的服务器中 . 在控制台中尝试时,我没有任何错误 . 编辑:此外,modelform_factory(问题)工作 .
任何想法为什么会这样?为什么类似的模型表现得如此不同,我怎么能摆脱错误呢?
编辑:这是完整的追溯:
文件"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/handlers/base.py" in get_response 100. response = callback(request,* callback_args,** callback_kwargs)_wrapped_view中的文件"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/contrib/auth/decorators.py" 25.返回view_func(request,* args,** kwargs)文件"/Library/WebServer/Documents/dj1/../dj1/esm/views.py"在仪表板193. print qForm File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/utils/encoding.py" in str 27回归自我 . unicode () . 编码('utf-8')文件"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/forms/forms.py" in unicode 95. return self.as_table()文件"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/forms/forms.py" in as_table 217. errors_on_separate_row = False)文件"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/forms/forms.py" in _html_output 145. bf = BoundField(self,field,name)文件"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/forms/forms.py" in init 398.如果self.field.label为None:
异常类型:/ esm / dashboard / Exception值中的AttributeError:'NoneType'对象没有属性'label'
1 回答
你在Modelform的Meta中有
fields = ("name")
这样的东西吗?上述语句被视为表达式而不是元组 . 所以代码在上面的例子中寻找验证字段'n','a','m','e',而不是"name" .请使用尾随逗号强制python将上面的元字段解释为元组
fields = ("name",)
...您的代码在此更改后应该可以正常工作 .