Django best practice – compare users

  • A+
Category:Languages

I'm working on a small project and I have a user profile page.

This page has a variable called user. This variable contains the user object of the current profile page. The logged in user object is accessible with request.user

If you just print the user object it will return the username because the model returns this in the __str__ function

What is the best way to compare if the user profile belongs to the current user?

I could just write

if user == request.user 

But what if django changes the return value of the __str__ function?

or I could write

if user.username == request.user.username 

or

if user.id == request.user.id 


if user == request.user: is the correct way. Comparison is based on database primary keys, not on string representations. Django docs: https://docs.djangoproject.com/en/2.0/topics/db/queries/#comparing-objects

Comment

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: