Django模型中没有定义名称 [英] Name is not defined in Django model

查看:199
本文介绍了Django模型中没有定义名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在其 models.py 文件中有一个具有以下内容的Django应用程序:

  from django.db import models 

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
/ pre>

但是当我运行 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 of Event. 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆