I’m developing a Twitter-like system, and have a model to record who follows who. There are two fields and both fields are foreign keys and point to the User model.
Clearly you wouldn’t want a follower-followee record duplicated, so I’m using the unique_together attribute in the inner Meta class, in order that the follower-followee pair is unique. Trying to violate this throws IntegrityError and 500 status code.
This feels like a “second line of defence” as my view and template code doesn’t give a user the chance to follow someone twice.
Should I/can I do something similar to ensure you can’t follow yourself?
The view and template that lists all users (each with a button to click to follow that user) does not list the currently logged in user, so there should be no opportunity to follow yourself. But I don’t have anything equivalent to unique_together.
Dude, no.
I don’t know why you’re doing this, but assuming it isn’t for a uni project with a lunatic professor, you’re wasting your time.
That is, if he’s not a lunatic he’s not going to try and hack the following/followee . And so what if he does?
If its for a startup-idea, then spend less time solving this (trivial) problem and more time working on whatever business model or marketing or whathaveyou thing you need to do.
A little bug isn’t going to be a show stopper.
If you’re being contracted out, leave it as a bug and get the conteact extended to fix it 🙂
If you just want to fix this, just do a check in the model or the validation that the follower isn’t the same as the followee