我想在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(问题)有效。
为什么会出现这种情况?为什么类似的模型表现得如此不同,我怎么能摆脱错误?
编辑: 这是完整的追溯:
get_response中的文件“/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/handlers/base.py” 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. return view_func(request,* args,** kwargs) 仪表板中的文件“/Library/WebServer/Documents/dj1/../dj1/esm/views.py” 193.打印qForm str 中的文件“/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/utils/encoding.py” 27.返回self。 unicode ()。encode('utf-8') 在 unicode 中输入文件“/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/forms/forms.py” 95. return self.as_table() 在as_table中输入文件“/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/forms/forms.py” 217. errors_on_separate_row = False) _html_output中的文件“/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/forms/forms.py” 145. bf = BoundField(自我,字段,名称) init 中的文件“/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/forms/forms.py” 398.如果self.field.label为None:
异常类型:/ esm / dashboard /中的AttributeError 异常值:'NoneType'对象没有属性'label'
答案 0 :(得分:1)
你的模型形态的Meta中有fields = ("name")
之类的东西吗?
上述语句被视为表达式而不是元组。所以代码在上面的例子中寻找验证字段'n','a','m','e',而不是“name”。
请使用尾随逗号强制python将上面的元字段解释为元组fields = ("name",)
...此代码在此更改后应该可以正常工作。