Я принимаю изображение от пользователя в форме в Django. Как получить доступ к загруженному изображению, чтобы показать его в веб-браузере?
Это то, что у меня есть в settings.py
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
MEDIA_URL = '/media/'
Это в моем models.py
class Hotel(models.Model):
name = models.CharField(max_length=50)
image = models.ImageField(upload_to="images/")
Кроме того, я добавил
if settings.DEBUG:
urlpatterns +=static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
в urls.py
Я попытался получить доступ к изображению как
def image_view(request):
if request.method=='POST':
farm = hotelForm();
form = hotelForm(request.POST,request.FILES)
if form.is_valid():
form.save()
modelff = Hotel(name=request.POST['name'],image = request.FILES['image'])
# print(modelff.image.url)
return render(request,'djangoform.html',{"form":farm,"uploaded_data_url":modelff.image.url})
else:
form = hotelForm()
return render(request,'djangoform.html',{"form":form})
И в моем шаблоне Я получил доступ к изображению как <img src="{{uploaded_data_url}}">
. Но изображение не отображается, и консоль показывает, что изображение не найдено.
PS Я видел Как получить доступ к медиа-файлам в django Как получить доступ к загруженным файлам в Django? https://docs.djangoproject.com/en/dev/howto/static-files/#serving -files- загружено пользователем во время разработки Django: доступ к загруженному изображению из ImageField Но, похоже, ни один из них мне не помог. Я не могу найти, как мне включить 'images/'
в моем пути. Мой uploaded_data_url
показывает /media/Screenshot%202020-04-18%20at%206.39.24%20PM.png
, в то время как я ожидаю, что он покажет /media/images/Screenshot%202020-04-18%20at%206.39.24%20PM.png
В чем проблема?
Кроме того, если может быть что-то похожее на Как я могу получить загруженный текстовый файл просматривается через Django? (f.read() in this question
) Было бы здорово.
Редактировать: Поскольку из ответа кажется, что вопрос не ясен, я хотел бы уточнить, что вышеизложенное было именно тем, что я пытался, и я действительно не знаю, правильно это или нет. Во-вторых, цель всего этого состояла в том, чтобы получить изображение от пользователя, обработать его и показать пользователю исходное и конечное изображение. Так что если есть какой-то другой метод, который вам нужно сделать, пожалуйста, поделитесь этим.