Django - Ошибка при фильтрации кверисета полей формы

Я создал форму и представление (FBV) для добавления новой модели. Я переопределил __init__ формы, но теперь, когда я пытаюсь получить доступ к моему представлению, оно выдает ошибку У объекта 'CreationForm' нет атрибута 'get'

Мое мнение:

def Creation(request):
    user = None
    if request.user.is_authenticated:
        user = request.user

    #   POST METHOD
    if request.method == "POST":
        form = CreationForm(request.POST)   
        form.user = user    
        if form.is_valid():
            sheet = form.save()
            return redirect("sheet_detail", pk=sheet.id)

    form = CreationForm(initial={'user': request.user})
    return render(request, "jde/creation_form.html", context={"form": form})

Моя форма :

class CreationForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(CreationForm, self).__init__(self, *args, **kwargs)
        self.fields["contest"].queryset = Contest.objects.filter(active=True)

    class Meta:
        ...

Ошибка возникает из-за того, что вы передаете self в вызов super().__init(). Его удаление должно решить вашу проблему.

class CreationForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(CreationForm, self).__init__(*args, **kwargs)
        self.fields["contest"].queryset = Contest.objects.filter(active=True)

    class Meta:
        ...
Вернуться на верх