Валидация ограничений недействительность django

Я пытаюсь проверить форму, но она идет в базу данных и возвращает ошибку проверки ограничений.

form.py

from django import forms

from . models import Semana

class FormularioSemana(forms.ModelForm):

class Meta:
    model = Semana
    exclude = ['username']
    #fields = '__all__'

    widgets = {'lunes_inicio': forms.TimeInput(attrs={'type': 'time'}),
    'lunes_fin': forms.TimeInput(attrs={'type': 'time'}),
    'martes_inicio': forms.TimeInput(attrs={'type': 'time'}),
    'martes_fin': forms.TimeInput(attrs={'type': 'time'}),
    'miercoles_inicio': forms.TimeInput(attrs={'type': 'time'}),
    'miercoles_fin': forms.TimeInput(attrs={'type': 'time'}),
    'jueves_inicio': forms.TimeInput(attrs={'type': 'time'}),
    'jueves_fin': forms.TimeInput(attrs={'type': 'time'}),
    'viernes_inicio': forms.TimeInput(attrs={'type': 'time'}),
    'viernes_fin': forms.TimeInput(attrs={'type': 'time'}),
    'sabado_inicio': forms.TimeInput(attrs={'type': 'time'}),
    'sabado_fin': forms.TimeInput(attrs={'type': 'time'}),
    'domingo_inicio': forms.TimeInput(attrs={'type': 'time'}),
    'domingo_fin': forms.TimeInput(attrs={'type': 'time'}),
    }
    def __init__(self, username, *args, **kwargs):
        super(FormularioSemana, self).__init__(*args, **kwargs)
    # Set the instance's solicitante to the passed user. With this, you no longer have to do it in your views.py as well
        self.instance.username = username
        if not username.is_staff: # note that I moved the queryset filtering inside the if statement to avoid logical errors when user.is_staff is True
            self.fields['nombre'].queryset = nombre.stem.filter(username = request.user)

    def clean(self, *args, **kwargs):
        super().clean(*args, **kwargs)
            # Get the values
        nombre = self.cleaned_data['nombre']
        username = self.instance.username

    # Find the duplicates
        duplicates = Semana.stem.filter(
            nombre=nombre,
            username=username
            )
        if self.instance.pk:
            duplicates = duplicates.exclude(pk=self.instance.pk)
        if duplicates.exists():
            raise forms.ValidationError('El nombre de la semana existe!')

Я думаю, что проблема здесь, но я не вижу их

views.py

    def index(request):
    if request.method == 'POST':
        form = FormularioSemana(request.POST)

        if form.is_valid():
            add_usuario = form.save(commit=False)
            add_usuario.username = request.user
            add_usuario.save()
            all_items = semanaDb.stem.filter(username = request.user)
            semana = FormularioSemana()
            messages.success(request, ('New item added...'))
            #item = semanaDb.objects.filter(id=id)
            #item.delete()
        return render (request, 'semana.html', {'form':semana, 'all_items':all_items})

    else:
        semana = FormularioSemana()
        all_items = semanaDb.stem.filter(username = request.user)
        
        #item = semanaDb.objects.filter(id=id)
        #item.delete()
        return render(request, 'semana.html', {'form':semana, 'all_items':all_items})

models contraint --->

    class Meta:
    constraints = [
        models.UniqueConstraint(fields=['username', 'nombre'], name='nombre unico')
    ]

Запускается, но формы не подтверждают ограничение.

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