13

我有一个 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:名称“地点”未定义

为什么这class Venue是文件中的时间?我做错了什么吗?我一直在关注https://docs.djangoproject.com/en/1.5/intro/tutorial01/上的 Django 教程。

4

1 回答 1

30

将 的定义移到 的定义Venue之前Event。原因是 Event 在定义 Venue 之前在其 ForeignKey 关系中引用了 Venue 类。

或者你可以这样做:

venue = models.ForeignKey('Venue')
于 2013-08-18T20:37:43.127 回答