python 使用第二个模型的外键时未定义模型

0pizxfdo  于 2022-11-28  发布在  Python
关注(0)|答案(2)|浏览(113)

我试图在一些模型之间创建几个关系,比如用户和国家。当我试图同步数据库时,我的控制台输出“名称国家未定义”。
代码如下:

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

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

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

lg40wkob

lg40wkob1#

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

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

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

有关此问题的文档可在此处找到

mwyxok5s

mwyxok5s2#

您需要将“国家/地区”的定义移动到“用户”的定义之上。
发生的情况是编译器(编译为.pyc字节码时)正在编译User的Class定义,并看到一个Country类型对象的引用。编译器尚未看到此定义,也不知道它是什么,因此出现未定义的错误。
因此,基本的经验法则是:在调用或引用之前,必须定义所有内容

相关问题