ВОПРОС
У меня есть приложение, которое будет делать онлайн-бронирования для серии еженедельных мероприятий. Я хотел бы отобразить список предстоящих событий в HTML-шаблон с количеством оставшихся мест, доступных на одной HTML-странице. Мне удалось создать представления, чтобы отобразить список предстоящих событий, и другое представление, чтобы отобразить количество оставшихся свободных мест, но я не могу понять, как вложить эти два в одно представление. Пример ниже ...
ВЫХОД HTML
Название мероприятия Неделя 1
- x количество мест, оставшихся для этого события
Название мероприятия Неделя 2
- x количество мест остается неизменным для этого события
Название мероприятия Неделя 3
- x количество мест, оставшихся для этого события
и так далее ...
МОДЕЛЬ
class Events(models.Model):
event_date = models.DateField(auto_now_add=False)
event_time = models.TimeField(auto_now_add=False)
event_type = models.CharField(max_length=20, choices=EVENT_TYPE)
seating = models.IntegerField(default=0)
title = models.CharField(max_length=200)
description = models.TextField()
menu = models.TextField()
price = models.DecimalField(max_digits=6, decimal_places=2)
publish = models.CharField(max_length=1, choices=PUBLISH_CHOICE)
def __int__(self):
return self.title
class Reservations(models.Model):
user_id = models.IntegerField(default=0)
event_id = models.IntegerField(default=0)
reservations = models.IntegerField(default=0)
def __int__(self):
return self.event
МНЕНИЯ
def events_view(request):
события = Events.objects.filter (публикация = 'Y'). Фильтр (event_date__gte = datetime.now ()). Order_by ( 'event_date')
booking_count = Reservations.objects.aggregate (Sum ('reservations'))
return render(request, 'restaurant/events.html',{"events":events, "reservation_count":reservation_count, })
def make_reservation_view(request, pk):
event = Events.objects.get(id=pk)
seating_available = Events.objects.get(id=pk)
seating_available = seating_available.seating
reservation_count = Reservations.objects.filter(event_id=pk).aggregate(res_sum=Sum('reservations'))
res = reservation_count['res_sum']
seats_remaining = seating_available - res
return render(request, 'restaurant/make_reservation.html', {"event":event, \
"seats_remaining":seats_remaining,})