gpt4 book ai didi

Django:使用整数设置外键?

转载 作者:行者123 更新时间:2023-11-28 19:32:42 25 4
gpt4 key购买 nike

有没有办法使用模型的整数 id 设置外键关系?这将用于优化目的。

例如,假设我有一个 Employee 模型:

class Employee(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
type = models.ForeignKey('EmployeeType')

EmployeeType(models.Model):
type = models.CharField(max_length=100)

我想要拥有无限员工类型的灵 active ,但在部署的应用程序中可能只有一种类型,所以我想知道是否有办法硬编码 ID 并以此方式设置关系。这样我就可以避免先调用数据库来获取 EmployeeType 对象。

最佳答案

是的:

employee = Employee(first_name="Name", last_name="Name")
employee.type_id = 4
employee.save()

ForeignKey 字段将其值存储在末尾带有 _id 的属性中,您可以直接访问该属性以避免访问数据库。

ForeignKey_id 版本是 Django 的一个特别有用的方面,每个人都应该知道并在适当的时候不时使用它。

警告:[ < Django 2.1 ]

@RuneKaagaard 指出 employee.type 在最近的 Django 版本中并不准确,即使在调用 employee.save() 之后(它保持其旧值)也是如此。使用它当然会破坏上述优化的目的,但我更愿意意外的额外查询而不是不正确的。所以要小心,只有当你完成你的实例工作时才使用它(例如 employee)。

注意:正如@humcat 在下面指出的那样,错误已在 Django 2.1 中修复

关于Django:使用整数设置外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com