Django说我的模型没有定义

2024-05-23 17:34:55 发布

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

因此,我正在开发一个使用Django的项目,并试图在一些模型(如用户和国家)之间建立一些关系。当我尝试同步数据库时,我的控制台输出“未定义名称国家”。检查代码:

class User(models.Model):
 name = models.CharField(max_length=50,null=False)
 email = models.EmailField(max_length=50,null=False)
 password = models.CharField(max_length=10,null=False)
 country = models.ForeignKey(Country,null=False) #error here
 rol = models.ForeignKey(Rol,null=False)
 job = models.ManyToManyField(Job) #UserxJob
 skill = models.ManyToManyField(Skill) #UserxSkill
 plan = models.ManyToManyField(Plan) #UserxPlan
 image = models.ForeignKey(Image)
 description = models.TextField(max_length=300)
 website = models.URLField(max_length=100,null=True)

 def __unicode__(self):
    return  self.name


class Country(models.Model):
 name = models.CharField(max_length=50,null=False)

 def __unicode__(self):
    return self.name

你能帮我弄一下这个吗?


Tags: nameselffalsemodelmodelsdef国家country
2条回答

Country的类定义移到文件的User上方

或者

User模型中,将属性country更新为:

country = models.ForeignKey('Country',null=False) 

关于这个的文档可以是found here

您需要将国家的定义移到用户定义之上。

正在发生的是编译器(在编译到.pyc字节码时)正在为用户编译类定义,并看到对Country类型对象的引用。编译器还没有看到这个定义,也不知道它是什么,因此没有定义它的错误。

因此,在调用或引用之前,必须定义基本的经验法则->;所有内容

相关问题 更多 >