Форма не является действительной Django

Я новичок в Django/Python, и всякий раз, когда я пытаюсь отправить свою форму, метод is_valid() возвращает false. Я пытался отобразить ошибки с помощью form.errors, но он не возвращает ничего или {}. Когда я пытаюсь выполнить следующий код:

form.non_field_errors()
field_errors = [(field.label, field.errors) for field in form]

Я получаю [('', []), ('Required', [])]

form.py

class ApplicationForm(forms.ModelForm):
email = forms.EmailField(label='', max_length=100, required=True, widget=forms.TextInput(
    attrs={'class': 'form-group form-control input-lg ', 'placeholder': 'Email'}), )
required = forms.ModelMultipleChoiceField(queryset=Requirements.objects.all(), widget=forms.CheckboxSelectMultiple)

class Meta:
    model = Requirements
    fields = ['email', 'required']

views.py

def application_form(request):
try:
    form = ApplicationForm()
    context = {'form': form}

    if request.method == 'GET':
        return render(request, 'requirements/job_specs.html', context)
    if request.method == 'POST':
        print(form.is_valid(), form.errors)
        if form.is_valid():
            form.save()
            return JsonResponse({'created': True})
    form.non_field_errors()
    field_errors = [(field.label, field.errors) for field in form]
    print(field_errors)
    return JsonResponse(form.errors.as_json(), safe=False)
except Exception as e:
    print(e)

form = ApplicationForm(request.POST or None)
context = {'form': form}
return render(request, 'requirements/job_specs.html', context)

HTML

<form method="POST" id="application-form">
                {% csrf_token %}

                {{ form }}

                <div class="bg-light row" >
                    <div class="" id="btn-box">
                        <div class="col-md-12 d-grid gap-2 col-6 ">
                            <button type="submit" class="btn btn-primary btn-lg">Save</button>
                        </div>
                    </div>
                </div>

            </form>

Я пытался применить решения из похожих постов, таких как Django forms is not valid или Django forms is not valid, но ни одно из них не помогло решить проблему. Любая помощь будет высоко оценена

После нескольких часов просмотра кода я наконец нашел, что было не так. Мне просто пришлось добавить request.POST or None в form = ApplicationForm(), и все заработало как по маслу.

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