Не удаётся загрузить изображение на сервер в Django
Я хотел бы загружать изображения на сервер Django через форму. На сайте админа это у меня прекрасно получается. Но при попытке загрузки через пользовательскую формы оно не загружается, хотя ошибок не выдаёт. Я реализую загрузку медиафайлов на сервер следующим образом:
# метод для страницы со формой:
def crt_rs(request):
if request.user.is_authenticated: return render(request,"resume.html")
else:
response = redirect("log_in/")
return response
#получение данных из запроса:
def add_rs(request):
#получение различных данных
FIO = request.POST.get("FIO")
teleph = request.POST.get("teleph")
prof = request.POST.get("prof")
exp_wk = request.POST.get("exp_wk")
about =request.POST.get("about")
tch = request.POST.get("tch")
email = request.POST.get("email")
#получение изображения
document = request.POST.get("document")
#сохранение данных в одной модели
a = ResumeWorker(FIO=FIO,teleph=teleph,prof=prof,
exp_wk=exp_wk,about=about,
tch=tch,email=email)
a.save()
#сохранение изображения в другой модели
b = ost(title=FIO,cover=document)
b.save()
HTML-разметка формы, через которую передают данные:
<form method="post" action="add_rs">
<p><input type="file" name="document"/></p>
<p>ФИО<br> <input name="FIO" /></p>
<p>Телефон<br> <input name="teleph"/></p>
<p>Профессия<br> <input name="prof"/></p>
<p>О себе(100 символов)<br> <input name="about"/></p>
<p>Образование<br> <input name="tch"/></p>
<p>E-mail<br> <input name="email"/></p>
<p>Опыт работы<br> <input name="exp_wk"/></p>
<input type="submit" value="Send" />
</form>
содержание модели ost
и resume_worker
:
class ResumeWorker(models.Model):
"""
A typical class defining a model, derived from the Model class.
"""
# Fields
FIO = models.CharField(max_length=50, help_text="ФИО")
teleph = models.CharField(max_length=12, help_text="номер телефона")
prof = models.CharField(max_length=30, help_text="Профессия")
exp_wk = models.CharField(max_length=100, help_text="Опыт работы (нету - 0)")
about = models.CharField(max_length=100, help_text="О себе (100 символов)")
tch = models.CharField(max_length=20, help_text="Образование")
email = models.CharField(max_length=30, help_text="Email")
def get_absolute_url(self): return reverse('model-detail-view', args=[str(self.id)])
def __str__(self): return self.FIO
@staticmethod
def rw(): return ResumeWorker.objects.all()
class Forum(models.Model):
"""
A typical class defining a model, derived from the Model class.
"""
# Fields
usr = models.CharField(max_length=50, help_text="Отправитель")
text = models.CharField(max_length=100, help_text="Текст")
time = models.CharField(max_length=30, help_text="Время отправки")
def get_absolute_url(self): return reverse('model-detail-view', args=[str(self.id)])
def __str__(self): return self.usr
@staticmethod
def rw(): return Forum.objects.all()
from django.db import models
class ost(models.Model):
cover = models.ImageField(upload_to="media")
title= models.CharField(max_length=100, help_text="Текст")
def __str__(self): return self.title
Где я допустил ошибку и почему медиафайлы не загружаются через мою форму?
Источник: Stack Overflow на русском