我应该对Django User或Profile模型进行ForeignKey吗?

Lud*_*udo 8 django django-models

我想知道人们对将模型直接连接到auth.User对象与用户的配置文件模型的想法是什么.

我正在存储我的用户在我的应用中添加的一些不同类型的模型.应用用户将通过这些型号的标准搜索其他用户.

一方面,我想如果我直接加入User,那么每次我需要获取用户的记录时我都不需要执行request.user.get_profile(),并且它不预先假定用户总是有一个个人资料(他们在我的应用程序在mo,但仍然).这使配置文件模型只包含用户的联系人详细信息.

另一方面,我想我在查找其他模型时很可能需要配置文件中的值(例如名称,位置).

毫无疑问,两者都有效,所以也许没关系,但我只是想知道其他人的想法是什么.

谢谢!

卢多.

小智 1

一般来说:如果您想让您的应用程序可重用,请始终为用户模型创建外键。

正如您已经说过的,在大多数情况下,您将需要 User 和 Profile 实例,因此为了防止多个数据库查询,请使用缓存。

如果可重用性不相关,请创建 Profile 的外键并使用 select_lated() 通过单个查询获取 User 实例。