python - 将模型关系指定为字符串与具体模型?

标签 python django django-models django-orm

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

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

哪一个更受青睐和推荐?选择其中一种比另一种有什么优点或缺点吗?在 Django 文档中,所有示例都是第二种形式,但我看到很多人将关系指定为字符串。

最佳答案

两个都很好。根据情况使用。

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)
    ...

这里两种符号都可以使用。

关于python - 将模型关系指定为字符串与具体模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55555673/

相关文章:

python - 如何将csv数据导入django模型

c++ - 使用 handle<> 构造此对象时,如何从 C++ 中的 python 取回有效对象?

python - 变量为无时默认模板标签输出的Django设置?

python - 从 Django 中的基本模型实例返回代理模型实例的正确方法?

Django:如何获取当前用户的组ID

python - 如何从 timedelta 对象中删除微秒?

python - 在 Python 中,是否可以在一个表达式中将列表拆分为第一个、内部和最后一个元素?

python - 如何创建一个 'urlpattern' 且数量不定的 'named regex groups'

python - SQLAlchemy 是否与 Django 的 get_or_create 等效?

python - Django foo_set 不起作用