Coverage for website/facedetection/forms.py: 34.78%
17 statements
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1from django import forms
2from django.conf import settings
4from .models import ReferenceFace
7class ReferenceFaceUploadForm(forms.ModelForm):
8 """Class for a reference face submission form."""
10 class Meta:
11 """Meta class for ReferenceFaceUploadForm."""
13 model = ReferenceFace
14 fields = ("file",)
16 def save(self, commit=True, user=None):
17 """Save the user encoding."""
18 if not user:
19 raise forms.ValidationError("User must be specified.")
21 instance = super().save(commit=False)
22 instance.user = user
24 if (
25 user.reference_faces.filter(
26 marked_for_deletion_at__isnull=True,
27 ).count()
28 >= settings.FACEDETECTION_MAX_NUM_REFERENCE_FACES
29 ):
30 raise forms.ValidationError(
31 "You have reached the maximum number of reference faces"
32 )
34 if commit:
35 instance.save()
36 return instance