Здравствуйте Хабаровчане. Тут у меня такая проблема. Вроде все сделал по документации, но почему то картинка на сайте не выводится. Более того в админ панели когда переходишь по ссылке на эту картинку то выходит страница 404.
Модели:
from django.db import models
class PortfolioStructure(models.Model):
title = models.CharField(max_length=255, unique=True)
upload_img = models.ImageField(upload_to='image/%Y/%m/%d/', blank=True)
upload = models.FileField(upload_to='video/%Y/%m/%d/')
descr = models.TextField()
site_url = models.URLField(blank=False)
git_url = models.URLField(blank=False)
def __str__(self):
return self.title
Вьюхи:
from django.shortcuts import render
from django.views.generic import ListView
from .models import PortfolioStructure
class ListProjects(ListView):
model = PortfolioStructure
template_name = 'WebPortfolioApp/index.html'
context_object_name = 'projects'
Настройки:
STATIC_URL = 'static/'
# Default primary key field type
# https://docs.djangoproject.com/en/4.1/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
Html:
{% extends 'WebPortfolioApp/base.html' %}
{% block content %}
<div class="container">
{% for p in projects %}
{% if p.upload_img %}
<p><img src="{{ p.upload_img.url }}"></p>
{% endif %}
<h2>{{p.title}}</h2>
{% autoescape on %}
{{p.descr|linebreaks|truncatewords:50}}
{% endautoescape %}
<div></div>
<p><a href="#" >Просмотреть</a></p>
{% endfor %}
</div>
{% endblock %}
Структура проекта: