Получение сообщения "Это поле обязательно для заполнения" при загрузке изображения
У меня нет проблем с отправкой полей символов, но когда я ввожу поле изображения, я получаю это сообщение -> "Это поле обязательно" во время заполнения формы .
models.py :
class Home(models.Model):
image = models.ImageField(upload_to='image')
titr = models.CharField(max_length=200)
description = models.TextField()
created = models.DateField(auto_now_add = True)
updated = models.DateField(auto_now = True)
class Meta:
ordering = ['created']
def __str__(self):
return str(self.titr)
views.py :
def craethome(request):
form = HomeForm()
if request.method == "POST":
form = HomeForm(request.POST,request.FILES)
if form.is_valid():
form.save()
return redirect("home")
return render(request, 'home/home_form.html', {"form":form})
forms.py :
from django.forms import ModelForm
from .models import Home
class HomeForm(ModelForm):
class Meta():
model = Home
fields = "__all__"
мой html-файл:
{% extends 'main.html' %}
{% block content %}
<img src="{{home.image.url}}">
<h1>{{home.titr}}</h1>
<p>{{home.description}}</p>
{% endblock content %}
Форма должна содержать enctype="multipart/form-data" [mdn] для кодирования данных файла таким образом, чтобы его можно было загрузить в представление:
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{ form }}
</form>
Вам нужно добавить enctype="multipart/form-data" в тег формы в html.
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{ form }}
</form>
Если вы хотите отправить без изображения, вы можете добавить null, blank или добавить изображение по умолчанию.
class Home(models.Model):
image = models.ImageField(upload_to='image', default='pic.png')
image2 = models.ImageField(upload_to='image', blank=True, null=True)