Django最佳实践 - 比较用户

Nep*_*nat 3 python django

我正在开发一个小项目,我有一个用户个人资料页面.

该页面有一个名为user的变量.此变量包含当前配置文件页面的用户对象.可以使用request.user访问登录的用户对象

如果您只是打印用户对象,它将返回用户名,因为模型会在__str__函数中返回该用户名

如果用户配置文件属于当前用户,比较的最佳方法是什么?

我可以写

if user == request.user
Run Code Online (Sandbox Code Playgroud)

但是如果django改变了__str__函数的返回值呢?

或者我可以写

if user.username == request.user.username
Run Code Online (Sandbox Code Playgroud)

要么

if user.id == request.user.id
Run Code Online (Sandbox Code Playgroud)

Rom*_*nko 9

if user == request.user:是正确的方法.比较基于数据库主键,而不是字符串表示.Django文档:https://docs.djangoproject.com/en/2.0/topics/db/queries/#comparing-objects