У меня есть эта модель:
class Church(models.Model): # The Category table name that inherits models.Model
name = models.TextField() #Like a varchar
logo = models.TextField(blank=True) #Like a varchar
class Event(models.Model): # The Category table name that inherits models.Model
name = models.TextField(blank=True) #Like a varchar
desc = models.TextField(blank=True) #Like a varchar
address = models.TextField(blank=True)
date = models.DateField(default=timezone.now)
reservation_date = models.DateField()
event_participant = models.IntegerField(blank=False,default=0)
church_id = models.ForeignKey(Church, on_delete=models.CASCADE)
class Visitor(models.Model): # The Category table name that inherits models.Model
name = models.CharField(max_length=200) #Like a varchar
mail = models.TextField() #Like a varchar
church_id = models.ForeignKey(Church, on_delete=models.CASCADE)
class Reservation(models.Model): # The Category table name that inherits models.Model
event_id = models.ForeignKey(Event, on_delete=models.CASCADE)
visitor_id = models.ForeignKey(Visitor, on_delete=models.CASCADE)
church_id = models.ForeignKey(Church, on_delete=models.CASCADE)
quantity = models.IntegerField(default=0)
В моем файле шаблона я хочу показать только левый event_participant. Для этого я возьму событие и перейду в раздел «Резервирование» и возьму там количество из каждой строки, которое соответствует event_id. Затем я удалю это число из event_participant и верну это число. В моем views.py я пробовал это:
@property
def count_event_participant(event):
return int(event.event_participant) - int(Reservation.objects.filter(event_id=event))
def events_list(request):
events = Event.objects.all().order_by('date')
return render(request, 'events_list.html', {'events': events})
И в моем файле шаблона я пробовал это:
<i class="fas fa-users"></i> {{ count_event_participant(event) }}
Я знаю, что это неверно, но я зависаю, я получаю не моя голова ясна. Что я пропустил, извините за вопрос новичка.