在Django mod中未定义名称

2024-04-20 08:48:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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教程。


Tags: 文件djangonamepyselfmodelreturnmodels
1条回答
网友
1楼 · 发布于 2024-04-20 08:48:16

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

或者你可以这样做:

venue = models.ForeignKey('Venue')

相关问题 更多 >