Переопределение инициализации формы в Django Ошибка выбора формы «Выберите правильный выбор» - PullRequest
1 голос
/ 22 декабря 2019

Я пытаюсь переопределить метод __init__, чтобы обновить набор запросов в поле roles моей формы. Это выдает ошибку проверки, которая говорит:

Выберите правильный выбор. Этот выбор не является одним из доступных.

.. затем возвращает форму без параметров в этом поле roles.

forms.py

class UserRegisterForm(UserCreationForm):
    role = forms.ModelChoiceField(
        queryset=EmployeeType.objects.all(),
        empty_label=None,
        required=False)
    supervisor = forms.ModelChoiceField(
        queryset=Employee.objects.all(),
        required=False)

    def __init__(self, *args, **kwargs):
        self.company = (kwargs.pop('company', None))
        super(UserRegisterForm, self).__init__(*args, **kwargs)
        self.fields['role'].queryset = EmployeeType.objects.filter(company=self.company)
        self.fields['supervisor'].queryset = Employee.objects.filter(company=self.company, supervisor=None)

views.py

def register(request):
    if request.method == 'POST':
        form = UserRegisterForm(request.POST)
        if form.is_valid():
            form.save()
            employee = Employee.objects.get(username=form.instance)
            user_count = request.tenant.employee_set.count()
            if user_count > 1:
                form.instance.is_active = False
            if form.instance.role:
                group_obj = form.instance.role.group
                group = Group.objects.get(name=group_obj)
                employee.groups.add(group)
            company = request.tenant
            form.instance.company = company
            return redirect('verify-redirect')
    else:
        form = UserRegisterForm(company=request.tenant)
    return render(request, 'employees/register.html', {'form': form})

Как исправить ошибку проверки формы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...