2016-07-29 55 views
0

我想呈現下面的表單,但Django拋出一個錯誤,我不明白爲什麼。提前致謝。NameError:name'Name'沒有以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 

回答

3

您有label每個字段,但使用的是NameHersteller等等來分配值。您可能對變量和字符串有重大誤解。如果你不引用某些東西,它們在python中被當作變量。但是他們沒有在其他地方定義,所以python讓你知道那些是未定義的變量。

快速修復將被加上引號周圍的所有標籤值:

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

您剛纔粘貼從回溯,巨大的錯誤,但你需要學習如何閱讀回溯前進。如果你向後讀取回溯,它會告訴你每個被調用的函數是什麼導致了最終的錯誤。我很確定name = forms.CharField(label=Name, max_lenght=100)最後顯示出來(如果你打電話給其他人,它可能會在中間),告訴你這是發生錯誤的位置。追蹤錯誤時您會從中受益良多。

+0

多麼愚蠢的錯誤!謝謝你的幫助。 – nictec