Django模型中没有定义名称 [英] Name is not defined in Django model
问题描述
我在其 models.py 文件中有一个具有以下内容的Django应用程序:
from django.db import models
/ pre>
class Event(models.Model):
date = models.DateField()
name = models.TextField(max_length = 60)
$($)
$ b class Venue(models.Model):
name = models.TextField(max_length = 60)
street_address = models.TextField(max_length = 60)
locality = models.TextField(max_length = 60)
region = models.TextField(max_length =
postal_code = models.TextField(max_length = 60)
country_name = models.TextField(max_length = 60)
latitude = models.DecimalField(max_digits = 9,decimal_places = 6)
longitude = models.DecimalField(max_digits = 9,decimal_places = 6)
def __unicode __(self):
return self.name
但是当我运行
python manage.py syncdb
我收到以下错误:
NameError:name'Venue'未定义
为什么在$ code> class Venue 在文件中?我做错了吗?我刚刚在 https://docs.djangoproject.com/en/1.5/intro上关注Django教程/ tutorial01 / 。
解决方案移动
地点的定义
在Event
的定义之前。
原因是事件在Venue定义之前引用了ForeignKey关系中的Venue类。
或者你可以这样做:
places = models.ForeignKey('Venue')
I have a Django app with the following in its models.py file:
from django.db import models class Event(models.Model): date = models.DateField() name = models.TextField(max_length=60) venue = models.ForeignKey(Venue) def __unicode__(self): return self.name class Venue(models.Model): name = models.TextField(max_length=60) street_address = models.TextField(max_length=60) locality = models.TextField(max_length=60) region = models.TextField(max_length=60) postal_code = models.TextField(max_length=60) country_name = models.TextField(max_length=60) latitude = models.DecimalField(max_digits=9, decimal_places=6) longitude = models.DecimalField(max_digits=9, decimal_places=6) def __unicode__(self): return self.name
But when I run
python manage.py syncdb
I get the following error:NameError: name 'Venue' is not defined
Why is this when
class Venue
is in the file? Have I done something wrong? I’ve just been following the Django tutorial at https://docs.djangoproject.com/en/1.5/intro/tutorial01/.解决方案Move the definition of
Venue
before the definition ofEvent
. The reason is that Event references the Venue class in its ForeignKey relationship before Venue is defined.Or you can do this:
venue = models.ForeignKey('Venue')
这篇关于Django模型中没有定义名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!