Невозможно отправить форму модели с помощью CBVs
Я пытаюсь использовать ModelForms и CBVs для их обработки, но я сталкиваюсь с проблемой, особенно при отправке формы. Вот мой код.
forms.py
from django import forms
from .models import Volunteer
class NewVolunteerForm(forms.ModelForm):
class Meta:
model = Volunteer
fields = '__all__'
views.py
from django.http.response import HttpResponse
from django.views.generic.edit import CreateView
from .forms import NewVolunteerForm
class NewVolunteerView(CreateView):
template_name = 'website/join.html'
form_class = NewVolunteerForm
def form_valid(self, form):
print('Submitting')
form.save()
return HttpResponse('DONE')
join.html
{% extends 'website/_base.html' %}
{% block title %}Join Us{% endblock title %}
{% block content %}
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<input type="submit">
</form>
{% endblock content %}
Форма отображается правильно без каких-либо проблем, но когда я заполняю ее и нажимаю кнопку отправки, она просто перерисовывает форму и не отправляет ее вообще.
Я решил эту проблему, добавив атрибут enctype="multipart/form-data"
к элементу <form>
.
Причина в том, что когда у вас есть поля ImageFields или FileFields, этот атрибут должен использоваться.