首页 文章

用于子类模型的django ModelForm:一个错误,但另一个错误('NoneType'对象没有属性'label')

提问于
浏览
1

我想在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 回答

  • 1

    你在Modelform的Meta中有 fields = ("name") 这样的东西吗?上述语句被视为表达式而不是元组 . 所以代码在上面的例子中寻找验证字段'n','a','m','e',而不是"name" .

    请使用尾随逗号强制python将上面的元字段解释为元组 fields = ("name",) ...您的代码在此更改后应该可以正常工作 .

相关问题