Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django说我的模型没有定义_Python_Django_Model View Controller_Web - Fatal编程技术网

Python Django说我的模型没有定义

Python Django说我的模型没有定义,python,django,model-view-controller,web,Python,Django,Model View Controller,Web,因此,我正在使用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=

因此,我正在使用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

你能帮我解决这个问题吗?

或者将
国家
的类定义移到文件中的
用户

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

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

关于这方面的文档可以是

您需要将国家/地区的定义移到用户定义之上

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


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

无需担心。我会赞同卡提克使用“国家”的替代方法。这样你就不必移动东西了。我只是想解释一下编译是如何工作的:)