@Feraun

Про добавление картинок на сайте django?

Мне нужно сделать добавление картинок на сайт django через админку, вроде сделал по одной статье и вроде бы все работает, но сама картинка не отображается. Помогите пожалуйста решить проблему!
#models.py
from django.db import models

class Bb(models.Model):
    title = models.CharField(max_length=50, verbose_name='Объявление')
    content = models.TextField(null=True, blank=True, verbose_name='Описание')
    published = models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Опубликовано')
    image = models.ImageField(blank=True, upload_to='images/blog/%Y/%m/%d', help_text='150x150px', verbose_name='Ссылка картинки')
    
    def image_img(self):
        if self.image:
            from django.utils.safestring import mark_safe
            return mark_safe(u'<a href="{0}" target="_blank"><img src="{0}" width="100"/></a>'.format(self.image.url))
        else:
            return '(Нет изображения)'
    image_img.short_description = 'Картинка'
    image_img.allow_tags = True


    class Meta:
        verbose_name_plural = 'Объявления'
        verbose_name = 'объявление'
        ordering = ['-published']

#admin.py
from django.contrib import admin

from .models import Bb



class BbAdmin(admin.ModelAdmin):
    list_display = ('title', 'content', 'published', 'image', 'image_img')
    list_display_links = ('title', 'content', 'image', 'image_img')
    search_fields = ('title', 'content', 'image', 'image_img')


admin.site.register(Bb, BbAdmin)

{% load static %}
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type"
        content="text/html"; charset="utf-8">
        <title>Главная - доска объявлений</title>
    </head>
    <body>
        <h1 align="center">Объявления</h1>
        {% for bb in bbs %}
        <div>
            <h2 align="center">{{  bb.title }}</h2>
            <p align="center" >{{  bb.content }}</p>
        <div>
            {% if bb.image %}
                <img src="{{ MEDIA_URL }}{{ bb.image }}">
            {% endif %}
        </div>
            <p align="center">{{ bb.published|date:"d.m.Y H:i" }}</p>
        </div>
        {% endfor %}
    </body>
</html>


Вот скрин админки 5f21d38c63547160104518.png
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
@Feraun Автор вопроса
ВОПРОС ЗАКРЫТ!!!!
Я разобрался просто напросто поменял в настройках Media и Static Root и их URL. Убрал media из static.
STATIC_URL = '/static/'

MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы