Django Model关联关系之ForeignKey

Django Model关联关系之ForeignKey

💡 原文中文,约3000字,阅读约需7分钟。
📝

内容提要

本文介绍了Django中ForeignKey的定义及用法,强调其在多对一关系中的重要性。ForeignKey需要两个参数:关联模型类和on_delete选项。示例展示了如何在用户模型中使用ForeignKey关联自身,以及如何通过实例或ID新增和查询数据。同时提到related_name的使用,便于反向查询。

🎯

关键要点

  • ForeignKey定义了一个多对一的关系,需要两个位置参数:模型相关的类和on_delete选项。
  • 在用户模型中,可以使用ForeignKey关联自身,例如通过leader字段标识直属领导。
  • ForeignKey字段在数据库中的名称会加上_id后缀,通常保持默认即可。
  • 可以通过实例或ID两种方式新增和查询数据。
  • 使用related_name可以方便地进行反向查询。

延伸问答

什么是Django中的ForeignKey?

ForeignKey定义了一个多对一的关系,需要两个位置参数:模型相关的类和on_delete选项。

如何在用户模型中使用ForeignKey关联自身?

可以在用户模型中使用leader字段标识直属领导,模型类写成'self'来关联自身。

ForeignKey字段在数据库中的名称是什么?

ForeignKey字段在数据库中的名称会加上_id后缀,例如leader字段在数据库中为leader_id。

如何通过实例或ID新增和查询数据?

可以通过实例或ID两种方式新增数据,例如使用Password.objects.create()方法,查询时使用Password.objects.get()。

related_name在ForeignKey中有什么作用?

related_name可以方便地进行反向查询,允许通过定义的值进行查询,例如h.users.all()。

ForeignKey的on_delete选项有什么作用?

on_delete选项定义了关联表数据删除时的动作,例如使用models.CASCADE表示级联删除。

➡️

继续阅读