Изображения не появляются на странице, даже если они уже есть в БД (Django)

Я пытаюсь узнать, как развернуть мой проект django. У меня есть форма, в которую пользователь может загрузить свое изображение. Изображение является контентом для ImageField модели Recipe. Процесс загрузки работает, как и ожидалось, но когда я пытаюсь отобразить эти изображения на странице, они просто не появляются. Вот мой код:

settings.py:

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'

MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

urls.py (первый проект):

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('auth/', include('user_auth.urls')),
    path('main/', include('main_app.urls')),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

models.py:

class Recipe(models.Model):
    author = models.ForeignKey(UserExtended, on_delete=models.CASCADE, related_name='recipies')
    title = models.CharField(max_length=150, null=False)
    category = models.ForeignKey(RecipeCategory, related_name='recipies', on_delete=models.CASCADE, null=True)
    image = models.ImageField(upload_to="images/", null=False)
    short_description = models.CharField(max_length=250, null=False)
    tutorial = models.TextField(null=False, default='')
    uploaded_on = models.DateTimeField(auto_now_add=True)
    likes = models.ManyToManyField(UserExtended, related_name='liked_recipies')
    likes_count = models.SmallIntegerField(default=0)

    def __str__(self):
        return f'{self.author} {self.title}'

пример моего шаблона:

<img class="full-recipe-image" src="{{ recipe.image.url }}" alt="Фото блюда">

Любая помощь будет для меня благословением, так как я в отчаянии.

Я попытался изменить свой urls.py и столкнулся с проблемой MEDIA_ROOT / MEDIA_URL

Проблема решена! В моем файле settings.py MEDIA_URL должен быть реальным интернет-адресом.

Вернуться на верх