D
django image выдает ошибку "This field is required".Виды
введите здесь описание изображения
Модели
введите здесь описание изображения
Forms
введите здесь описание изображения
HTML
введите здесь описание изображения
УРЛЫ
введите здесь описание изображения
Сначала есть опечатка в поле модели titulo
должно быть =
а не :
.
Во-вторых, вы всегда должны возвращать HttpResponseRedirect после работы с данными POST
, этот совет не относится к Django, это хорошая веб-практика в целом, поэтому используйте следующий вид:
def criar(request):
if request.method == 'GET':
return render(request, 'create.html', {'form': forms_user()})
else:
form = forms_user(request.POST, request.FILES )
if form.is_valid():
form.save()
messages.add_message(request, constants.SUCCESS, 'Cadastro realizado com sucesso.')
return redirect("success")
else:
print(form.errors)
messages.add_message(request, constants.ERROR, f'{form.errors}')
return render(request, 'create.html', {'form': forms_user()})
Если вы создали modelform, то отобразите поле изображения как показано ниже, и вы также можете убрать атрибут action
, так как Django по умолчанию принимает маршрут текущей страницы.
Html:
<form id="contact" method="POST" enctype="multipart/form-data">
<fieldset>
<label for="file">Seu arquivo</label>
{{form.image}}
</fieldset>
</form>
urls.py
urlpatterns=[
path("success/", views.success, name="success")
...
]
success.html:
<body>
<h1> The form has been successfully submitted </h1>
</body>