Django Form не отправляется (Нет действия POST на HTML-форме)
Я создал форму Django, но она не отправляется после нажатия кнопки submit. Похоже, что HTML сломан, потому что если я нажимаю на кнопку submit, Django не выводит POST действие. Шаблон выглядит следующим образом:
<form method="POST">
{% csrf_token %}
<div class="relative transform overflow-hidden rounded-lg bg-gray-800 text-left shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg">
<div class="bg-gray-50 dark:bg-gray-800 px-4 pt-5 pb-4 sm:p-6 sm:pb-4">
<div class="sm:flex sm:items-start">
<div class="mt-3 text-center text-gray-200 sm:mt-0 sm:ml-4 sm:text-left">
{{ addForm.email }}
{{ addForm.givingLessons }}
</div>
</div>
</div>
</div>
<input type="submit" class="inline-flex w-full justify-center rounded-md border border-transparent bg-indigo-600 px-4 py-2 text-base font-medium text-white shadow-sm focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2 sm:ml-3 sm:w-auto sm:text-sm" value="Update" />
</form>
views.py
def manage_students(request):
if request.method == "POST":
form = addStudentGivingLessons(request.POST)
if form.is_valid():
lessons = form.cleaned_data.get('givingLessons')
print(lessons)
return redirect('home')
else:
print("form is not Valid")
else:
Forms.py
class addStudentGivingLessons(forms.Form):
email = forms.EmailField()
givingLessons = forms.ModelMultipleChoiceField(widget = forms.CheckboxSelectMultiple,
queryset = Faecher.objects.all())
Как вы генерируете разметку HTML-формы? Есть ли у вас метод post, например, <html method="post">
?
EDIT
Только что увидел вашу правку, поскольку вы добавили разметку. Я вижу, что вы получили метод как пост. Поэтому проигнорируйте вышеизложенное, пожалуйста.
Вы можете попробовать распечатать ошибки, чтобы проверить, показывает ли он какие-либо ошибки валидации
print(form.error)
Кроме того, можете ли вы попробовать распечатать данные поста и посмотреть, получил ли он какие-либо данные?
def manage_students(request):
print(list(request.POST.items()))
Я только что обнаружил свою ошибку. У меня была форма в моем HTML, где я не закрыл тег. Теперь она работает ...