Как ограничить количество бронирований в день для 1 человека. Максимум человек может забронировать 5 мест в день

Идеи закончились после цикла for ;(

class Reservation(models.Model):
    computer_club = models.ForeignKey('clubs.Club', models.CASCADE, related_name='club_reservation', null=True)
    seats = models.ForeignKey('clubs.Table', models.CASCADE, related_name='seats_reservation', null=True)
    owner = models.ForeignKey('users.User', on_delete=models.CASCADE, related_name='owner_reservation', null=True)
    time = models.DateTimeField('Введите время бронирования')
    time1 = models.DateTimeField('Время окончания бронирования', blank=True, null=True)
    using_time = models.PositiveSmallIntegerField('Введите на сколько часов вы садитесь', validators=[MinValueValidator(1,message='Меньше 1 нельзя!'),\
    MaxValueValidator(10,message='Больше 10 нельзя!')])

    class Meta:
        verbose_name = 'Бронирование'
        verbose_name_plural = 'Бронирование'

class ReservationSerializer(serializers.ModelSerializer):
    #owner = serializers.StringRelatedField(many=False)

    class Meta:
        model = Reservation
        fields = ('computer_club', 'seats', 'owner', 'time', 'time1', 'using_time')

    def create(self, validated_data):
        user = self.context.get('request').user
        time = validated_data.get('time')
        seats = self.context('request').data.get('seats_reservation')
        reservation = Reservation.objects.create(owner=user, **validated_data)
        for time in time:
            time = Reservation.objects.get(id=seats.get('seats_id')).user
            if time:
                print('Нельзя забронировать больше 5 мест за день')
            else:
                return reservation

Ответы (1 шт):

Автор решения: Антон

БД можно спросить сколько текущий пользователь уже имеет бронирований https://docs.djangoproject.com/en/3.2/ref/models/querysets/#date

from django.utils import timezone
...
now = timezone.now()
count_reservation = Reservation.objects.filter(owner=user, time__date=now().date()).count()
if count_reservation == 5:
    print('fail')
→ Ссылка