我想呈现以下形式但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
答案 0 :(得分:3)
每个字段都有label
,但您使用Name
,Hersteller
等来分配值。您可能对变量和字符串存在重大误解。如果你没有引用某些东西,它们在python中被视为变量。但是他们没有在其他任何地方定义,所以python让你知道那些是未定义的变量。
快速修复将在所有标签值周围添加引号:
name = forms.CharField(label="Name", max_lenght=100)
你刚刚从追踪中粘贴了错误,很棒,但你需要学习如何阅读追溯。如果您向后阅读回溯,它会告诉您每个被调用的函数是什么导致最终错误。我很确定最后会显示行name = forms.CharField(label=Name, max_lenght=100)
(如果您调用其他内容可能位于中间),它会告诉您这是发生错误的位置。在跟踪错误时,您将从中受益匪浅。