将模型关系指定为字符串与具体模型? [重复]

问题描述 投票:1回答:1

这个问题在这里已有答案:

由于Django提供了两种指定模型关系的方法,

models.ForeignKey('User') vs models.ForeignKey(User)

哪一个更受欢迎并推荐?选择其中一个是否有任何好处或缺点?在Django文档中,所有示例都是第二种形式,但我看到很多人将关系指定为字符串。

python django django-models django-orm
1个回答
0
投票

两者都很好。根据情况使用它。

class Application(models.Model):
    user = models.ForeignKey('User')
    ...

class User(models.Model):
    ...

在上面的示例中,用户模型定义在应用程序模型下方。所以直接提到User是行不通的。

class User(models.Model):
    ...

class Application(models.Model):
    user = models.ForeignKey(User)
    ...

这两个符号都可以使用。

© www.soinside.com 2019 - 2024. All rights reserved.