我有一个Django应用程序,其models.py文件中包含以下内容:
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
但是当我运行python manage.py syncdb
时,会得到以下错误:
NameError: name 'Venue' is not defined
为什么当class Venue
在文件中时会出现这种情况?我做错什么了吗?我刚刚在https://docs.djangoproject.com/en/1.5/intro/tutorial01/上学习了Django教程。
将
Venue
的定义移到Event
的定义之前。 原因是事件在定义地点之前在其ForeignKey关系中引用了地点类。或者你可以这样做:
相关问题 更多 >
编程相关推荐