NameError:名称'名称'未在django表单中定义

时间:2016-07-29 15:31:56

标签: python django

我想呈现以下形式但django抛出错误,我不明白为什么。提前致谢。

forms.py:

from django import forms 
from .models import equipment 



class neweqForm(forms.ModelForm): 
    class Meta: 
        model = equipment

    name = forms.CharField(label=Name, max_lenght=100) 
    fabricator = forms.CharField(label=Hersteller, max_lenght=100) 
    storeplace = forms.IntegerField(label=Regal) 
    labour = forms.ChoiceField(label=Gewerk) 

models.py:

from __future__ import unicode_literals

from django.db import models

# Create your models here.
class equipment(models.Model): 
    name = models.CharField(max_length=30) 
    fabricator = models.CharField(max_length=30) 
    storeplace = models.IntegerField() 
    labor_choices = (  
        ('L', 'Licht'), 
        ('T', 'Ton'), 
        ('R', 'rigging'),
    ) 
    labor = models.CharField(max_length=1, choices=labor_choices) 

错误:

NameError: name 'Name' is not defined

1 个答案:

答案 0 :(得分:3)

每个字段都有label,但您使用NameHersteller等来分配值。您可能对变量和字符串存在重大误解。如果你没有引用某些东西,它们在python中被视为变量。但是他们没有在其他任何地方定义,所以python让你知道那些是未定义的变量。

快速修复将在所有标签值周围添加引号:

name = forms.CharField(label="Name", max_lenght=100)

你刚刚从追踪中粘贴了错误,很棒,但你需要学习如何阅读追溯。如果您向后阅读回溯,它会告诉您每个被调用的函数是什么导致最终错误。我很确定最后会显示行name = forms.CharField(label=Name, max_lenght=100)(如果您调用其他内容可能位于中间),它会告诉您这是发生错误的位置。在跟踪错误时,您将从中受益匪浅。