Привет всем, я использую django и пытаюсь отобразить картинку из моей базы данных, но у меня не получается.

Большая часть кода, который я использую, взята из этой статьи: (скопировано из https://www.etutorialspoint.com/index.php/356-how-to-display-image-from-database-in-django)

Вот мой код:

Моя модель("ингредиент") использует:

title = models.CharField(max_length=50, primary_key=True) pictureLink = models.ImageField(upload_to="media")

Ссылка на картинку, которую я предоставил в своей базе данных, следующая: C:\Users "Me"\Desktop "project"\image\leaves.png

Мой views.py содержит:

def say_hello(request):

allimages = Ingredient.objects.all()
return render(request, 'hello.html',{'images' : allimages})

Мой HTML код следующий:

{% for img in images %}  
  <tr>
    <td>{{img.title}}</td>
    <td><img src="{{ingredient.pictureLink.url}}" width="120"/></td>
  </tr>
  {% endfor %} 

В файле settings.py я разместил следующее:

BASE_DIR = Path(file).resolve().parent.parent

MEDIA_ROOT = os.path.join(BASE_DIR, 'image')

MEDIA_URL = '/image/'

Кто-нибудь знает, где я допускаю ошибку? Я новичок в Django, поэтому любая обратная связь приветствуется!

сначала измените свои settings.py

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
MEDIA_ROOT = BASE_DIR / 'media'
MEDIA_URL = "/media/"
STATIC_URL = '/media/static/'
STATICFILES_DIRS = (BASE_DIR / 'media/static', ) 
STATIC_ROOT = 'media/staticfiles/'

во-вторых, создайте папку с именем media в вашем пути

затем добавьте это к urlpatterns в вашем приложении urls.py к этому:

 url(r'^media/(?P<path>.*)/$', serve, {'document_root': settings.MEDIA_ROOT}, name = 'media'),

Не забудьте импортировать их в файл urls.py в папке приложения

from django.conf import settings
from django.conf.urls import url
from django.views.static import serve
Вернуться на верх