2011-10-26 46 views
6

我想知道什么人的想法是直接将模型加入到auth.User对象与用户的配置文件模型。我应该将ForeignKey转换为Django用户还是Profile模型?

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

一方面,我在想,如果我直接加入到用户,那么每次我需要获取用户的记录时,我都不需要执行request.user.get_profile(),也不需要假定一个用户总是有一个配置文件(他们在我的应用程序中执行,但仍然)。这使配置文件模型仅包含用户的联系人详细信息。另一方面,我想当我查找这些其他模型时,我很可能需要配置文件中的值(例如名称,位置)。

毫无疑问,任何一个都可以工作,所以也许没关系,但我只是想知道别人的想法是什么。

谢谢!

鲁多。

回答

1

一般来说:如果您想让应用程序可重用,请始终为用户模型创建外键。如上所述,在大多数情况下,您将需要User以及Profile实例,因此为了防止多个数据库查询,请使用缓存。

如果可重用性不相关,请为配置文件创建外键并使用select_related()来获取具有单个查询的用户实例。

2

我也建议创建用户模型的外键。在处理视图中的用户对象时,它只是让你的生活变得更简单。因此,您可以执行诸如request.user.foo_set之类的操作,而无需通过配置文件模型。

+0

我没有考虑到这一点。合理的建议。 – sleblanc

相关问题