def add_block(self, blocker, blocked): """ Create 'follower' follows 'followee' relationship """ if blocker == blocked: raise ValidationError("Users cannot block themselves") relation, created = Block.objects.get_or_create(blocker=blocker, blocked=blocked) if created is False: raise AlreadyExistsError("User '%s' already blocks '%s'" % (blocker, blocked)) block_created.send(sender=self, blocker=blocker) block_created.send(sender=self, blocked=blocked) block_created.send(sender=self, blocking=relation) bust_cache('blocked', blocked.pk) bust_cache('blocking', blocker.pk) return relation