【发布时间】:2018-04-27 10:17:58
【问题描述】:
我正在做一个小项目,我有一个用户个人资料页面。
此页面有一个名为 user 的变量。 此变量包含当前配置文件页面的用户对象。 登录用户对象可通过 request.user
访问如果您只打印用户对象,它将返回用户名,因为模型在 __str__ 函数中返回此用户名
比较用户个人资料是否属于当前用户的最佳方法是什么?
我可以写
if user == request.user
但是如果 django 改变了__str__ 函数的返回值呢?
或者我可以写
if user.username == request.user.username
或
if user.id == request.user.id
【问题讨论】:
-
为什么要比较用户和用户。您可以简单地使用 request.user 作为个人资料
-
@AnjaneyuluBatta.. 在某些情况下我们必须比较它们...比如提供编辑个人资料的选项,等等!
-
这取决于您的
user实际上是什么。如果它是与request.user相同类型的模型实例,那么对象之间的简单==是比较正确的方法。 Django 将负责正确的内部比较操作。如果它来自其他类型,您必须自己进行正确的比较,例如比较username属性。