I am a beginner to Django, and am creating an RSVP site to handle multiple events and keep track of guests to those events. I have a model for Guest, for Event, and an intermediate model for GuestEvent. I would like a page to loop through every GuestEvent for a Guest and allow me to update the attending, adults, and children fields in GuestEvent. I will never need to create or delete these fields through the front-end.
I am currently trying to use the class-based UpdateView, but could easily switch to a different view. I've tried to use django-betterforms and django-extra-views, but didn't have any luck with either. I've also made a few attempts at following tutorials for formsets and inline formsets with no success.
My models look like this:
class Event(models.Model):
name = models.CharField(max_length=200)
description = models.TextField(null=True, blank=True)
date = models.DateTimeField('event date')
guests = models.ManyToManyField('Guest', through='GuestEvent')
class Guest(models.Model):
first_name = models.CharField(max_length=45, null=True, blank=True)
last_name = models.CharField(max_length=45, null=True, blank=True)
events = models.ManyToManyField('Event', through='GuestEvent')
class GuestEvent(models.Model):
guest = models.ForeignKey('Guest', related_name='guests')
event = models.ForeignKey('Event', related_name='events')
attending = models.NullBooleanField()
adults = models.IntegerField(null=True, blank=True)
children = models.IntegerField(null=True, blank=True)
What would be the best way to get these intermediate records in some sort of update view?