Установите ограничение на количество отправляемых форм с одним и тем же объектом

Я работаю над школьным проектом, в котором есть мероприятия с различными лимитами людей, которых они могут иметь plaatsen_beschikbaar. Также ученики могут подавать заявки только на один вид деятельности beperk_aanmelden.

models.py

class Activiteit(models.Model):
    titel = models.CharField(max_length=64)
    docent = models.CharField(max_length=32)
    icon = models.ImageField()
    uitleg = models.TextField()
    plaatsen_beschikbaar = models.IntegerField()

def beperk_aanmelden(value):
    if Aanmelden.objects.filter(studentnummer=value).count() >= 1:
        raise ValidationError('Student heeft al de maximale aanmeldingen')
    else:
        return value

class Aanmelden(models.Model):
    naam = models.CharField(max_length=32)
    studentnummer = models.IntegerField(validators=[beperk_aanmelden,])
    klas = models.ForeignKey(Klas, on_delete=models.CASCADE, default=None, blank=True)
    activiteit = ForeignKey(Activiteit, on_delete=models.CASCADE, default=None, blank=True)

Aanmelden - это модель, которую следует применить к деятельности.

views.py

def home(request):
    activiteiten = Activiteit.objects.all()
    form = AanmeldenForm()
    if request.method == 'POST':
        form = AanmeldenForm(request.POST)
        if form.is_valid():
            form.save()
            Aanmelden.objects.get()
    return render(request, 'home.html', {
        'activiteiten': activiteiten,
        'form':form,
    })

Мне нужно сделать функцию , которая уменьшает количество доступных мест в активности и когда оно достигает 0, не позволяет больше отправлять заявки в эту активность. Это буквально последняя функция из моего бэкенда, которую я должен сделать, чтобы закончить это, и это должно быть сделано к понедельнику, так что как я могу это сделать?

Вернуться на верх