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