Url изображения в шаблоне django не работает в продакшене
Я пытаюсь показать изображения в отношениях один-ко-многим с моделью Post. Модель Post находится в отношениях "один-ко-многим" с моделью Category. Мой код работает с debug: True
, но не работает в продакшене. Кто-нибудь может понять, почему?
settings.py:
import os
BASE_DIR = Path(__file__).resolve().parent.parent
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
DEBUG = False
models.py:
class BlogImage(models.Model):
b_img = models.ImageField("Blog Image", null=True, blank=True, upload_to="img/b")
postimg = models.ForeignKey('Post', on_delete=models.SET_NULL, null=True)
class Post(models.Model):
...
category = models.ForeignKey('PortfolioCategory', on_delete=models.SET_NULL, blank=True, null=True)
class PortfolioCategory(models.Model):
category_name = models.CharField(max_length=100, unique=True)
urls.py:
from django.conf.urls.static import static
...
urlpatterns = [...]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
html:
{% for category in categories %}
{% for post in category.post_set.all %}
{% for img in post.blogimage_set.all %}
<img src="{{ img.b_img.url }}" alt="">
{% endfor %}
{% endfor %}
{% endfor %}
Этот код возвращает ValueError: The 'b_img' attribute has no file associated with it.
.
Я теряюсь в догадках, пытаясь заставить это работать. Заранее спасибо всем, кто может помочь
!