__init__() получила несколько значений для аргумента 'user'

У меня есть форма, модель и представление, и я пытаюсь показать ModelChoiceField с фильтрами

Я написал init в моем forms.py, но когда я пытаюсь отправить свою форму на html-странице, я получаю ошибку:

"__init__() получено несколько значений для аргумента 'user'" "

forms.py

class WorkLogForm(forms.ModelForm):
    worklog_date = forms.DateField(label='Дата', widget=forms.DateInput(
        attrs={'class': 'form-control', 'placeholder': 'Введите дату'}))
    author = forms.EmailField(label='Автор',
                              widget=forms.EmailInput(attrs={'class': 'form-control', 'placeholder': 'Email автора'}))

    contractor_counter = forms.ModelChoiceField(queryset=CounterParty.objects.none())
    contractor_object = forms.ModelChoiceField(queryset=ObjectList.objects.none())
    contractor_section = forms.ModelChoiceField(queryset=SectionList.objects.none())

    description = forms.CharField(label='Описание',
                                  widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Описание'}))

    def __init__(self, user, *args, **kwargs):
        super(WorkLogForm, self).__init__(*args, **kwargs)
        counter_queryset = CounterParty.objects.filter(counter_user=user)

        object_queryset = ObjectList.objects.filter(
            Q(customer_guid__in=counter_queryset) | Q(contractor_guid__in=counter_queryset))

        section_queryset = SectionList.objects.filter(object__in=object_queryset)

        self.fields['contractor_counter'].queryset = counter_queryset
        self.fields['contractor_object'].queryset = object_queryset
        self.fields['contractor_section'].queryset = section_queryset

    class Meta:
        model = WorkLog
        fields = (
            'worklog_date', 'author', 'contractor_counter', 'contractor_object', 'contractor_section', 'description')

views.py

def create_work_log(request):
    if request.method == 'POST':
        form = WorkLogForm(request.POST, user=request.user)
        if form.is_valid():
            form.author = request.user
            work_log = form.save()
            return render(request, 'common/home.html')
    else:
        form = WorkLogForm(user=request.user)

    return render(request, 'contractor/create_work_log.html', {'form': form})


В методе вашей формы init вы определили параметры как:

def __init__(self, user, *args, **kwargs):

Поэтому ваш первый параметр должен быть user вместо request.POST. Поэтому вы можете изменить

form = WorkLogForm(request.POST, user=request.user)

To

form = WorkLogForm(request.user, request.POST)
Вернуться на верх