Привет всем, я использую 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