DJANGO(Python)中的question_id和question.id之间的区别

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

我是一名完整的Django初学者。我在理解使用(.set和_set)方法,(。id和_ id)方法以及类似方法的概念时遇到了一些困难。目前我指的是Django Docs->>https://docs.djangoproject.com/en/3.0/intro/有人帮助我理解这些概念,例如方法背后的原因是什么以及在哪里使用哪种方法之王。谢谢。

python django methods web-deployment django-3.0
1个回答
0
投票

让我们举个例子,这是我的2张桌子:

所有者(名字,姓氏)

汽车(颜色,型号,所有者ID)

您可以通过外键关系看到,django在表Car中添加一个owner_id字段,它将在其中放置该车的所有者的ID。

现在在您的代码中,如果您获得Car对象,它将包含以下内容:

颜色

模型

owner_id

所有者

您可以使用car.owner_id(只是一个整数)或car.owner.id(可以在对象所有者中查找ID。

有什么区别:Django是惰性的,这意味着如果您不使用它,它将不会获得对象所有者。这意味着如果您在代码中没有任何时间执行car.owner.whateverwant,您的对象车中将没有对象所有者。而且它避免了Django从数据库中获取它

我们何时使用其中一个:如果您不使用对象car中的对象所有者,而只需要ID,请使用car.owner_id,这样就不必从数据库中提取所有者对象。

如果使用此对象所有者,没有任何区别,则可以使用car.owner_id或car.owner.id,因为您使用Django,Django仍然必须获取所有者对象。

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