Находить пользователей по функции доступности
У меня проблема с моим проджетом и связанными с ним моделями.
Предложим действительно базовую модель пользователя:
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)
)