Находить пользователей по функции доступности

У меня проблема с моим проджетом и связанными с ним моделями.

Предложим действительно базовую модель пользователя:

class User(AbstractUser):
    """Default user model."""
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    username = None
    email = models.EmailField(unique=True)

В моем приложении у пользователей есть календарь:

class Calendar(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)

и затем определить их доступность:

class Availability(models.Model):
    calendar = models.ForeignKey(Calendar, on_delete=models.CASCADE)
    date = models.DateField()

Это была хорошая модель, потому что на странице профиля я могу получить все доступные возможности с помощью функции календаря. Но у меня возникла проблема, когда я хочу найти всех пользователей с заданными возможностями. Как я могу получить их? Играя с другими параметрами, я использую:

users = User.petsitters.filter(
    Q(zipcode=selected_zipcode),
    Q(proposals__pk=selected_service)
)
Вернуться на верх