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

#python #django #forms #model

Вопрос:

Я работаю над школьным проектом, в котором есть мероприятия с разным количеством людей, которых они могут иметь 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, она больше не позволяет выполнять это действие. Это буквально последняя функция из моего бэкенда, которую я должен выполнить, чтобы закончить это, и это должно быть сделано к понедельнику, так как я могу это сделать?