Выполните проверку публичного/частного пользователя для сериализатора

У меня есть модель User и UserFollow. Автор - это следующий пользователь, Профиль - пользователь, за которым следуют. Сейчас я использую аутентификацию Token для проверки пользователей на несанкционированные запросы. Вот что я хочу включить в проверку, но не знаю, как это сделать:

Псевдокод

if profile.public_profile == true
  if attrs['author'].id != self.context['request'].user:
            raise ValidationError('Unauthorized Request')
if profile.public_profile == false
  if attrs['profile'].id != self.context['request'].user:
            raise ValidationError('Unauthorized Request')

Я не знаю, как поместить несколько условий IF в валидацию. Как я могу это сделать?

Models.py

class User(AbstractUser,PermissionsMixin):

    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    username =models.CharField(max_length=40,unique=True,default='undefinedusername')
    public_profile = models.BooleanField(default=True)

class UserFollow(models.Model):

    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    author = models.ForeignKey(User,on_delete=models.CASCADE,related_name='following')
    profile = models.ForeignKey(User,on_delete=models.CASCADE,related_name='followers')

Serializers.py

class UserFollowSerializer(serializers.ModelSerializer):

    class Meta:
        model = UserFollow
        fields = ('id',"author","profile")

    def validate(self, attrs):
        attrs = super().validate(attrs)
        if attrs['author'].id != self.context['request'].user:
            raise ValidationError('Unauthorized Request')
        return attrs
Вернуться на верх