Ошибка рекурсии при изменении поля ManyToManyField во время сохранения модели Django
 У меня возникла проблема с удалением пользователей из поля friends при сохранении в Django.
Вот описание моей идеи:
 У каждого профиля есть type, который соответствует определенному рангу. Например, у профиля с рангом type X может быть 10 друзей, а у профиля с типом Y - 20 друзей.
Вот как я это реализовал:
POWER_OF_PROFILE_TYPE = {"X": 0, "Y": 1}
class ProfileType(models.TextChoices):
    X = "X", "x"
    Y = "Y", "y"
class Profile(models.Model):
    type = models.TextField(choices=ProfileType.choices, default=ProfileType.BASIC, max_length=1)
    friends = models.ManyToManyField(User, blank=True, related_name="friends")
    __currently_type = None
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.__currently_type = self.type_of_profile
    def save(self, *args, **kwargs) -> None:
        if self.type_of_profile != self.__currently_type:
            if POWER_OF_PROFILE_TYPE[self.type_of_profile] < POWER_OF_PROFILE_TYPE[self.__currently_type]:
                users = self.friends.all()[10:]
                self.friends.remove(*users)
                self.save()  # This is causing recursion error
        super().save(*args, **kwargs)
        self.__currently_type = self.type_of_profile
 К сожалению, этот кусок кода приводит к ошибке рекурсии RecursionError ...maximum recursion depth exceeded.
Кто-нибудь может помочь мне понять, что я должен делать? 
 Не нужно вызывать .save() после вызова .remove() на поля M2M.
Удалите строку, вызывающую ошибку, и все будет в порядке.