我有以下两种模型:
class Event(models.Model):
name = models.TextField(blank=True)
desc = models.TextField(blank=True)
address = models.TextField(blank=True)
date = models.DateField(default=timezone.now)
reservation_date = models.DateField()
event_participant = models.IntegerField(blank=False,default=0)
class Reservation(models.Model):
event_id = models.ForeignKey(Event, on_delete=models.CASCADE)
quantity = models.IntegerField(default=0)
当我列出所有事件时,我希望计算出其他可能的参与者。 所以我认为:
def events_list(request):
events = Event.objects.all().order_by('date')
#I started here
for event in events:
obj = Reservation.objects.filter(event_id=event)
return render(request, 'events_list.html', {'events': events, 'obj': obj})
但是obj为空。 还是有更好的方法来计算参与者(参与者-数量)? 谢谢
答案 0 :(得分:0)
首先,您必须在related_name
模型中添加Reservation
,并重命名event_id
:
class Reservation(models.Model):
event = models.ForeignKey(Event, on_delete=models.CASCADE, related_name='reservation_events')
quantity = models.IntegerField(default=0)
然后在您的视图中可以使用以下query
:
events = Event.objects.all().order_by('date')
objects = Reservation.objects.filter(reservation_events=events)
希望这个答案有所帮助。