Ссылка администратора Django на изображение через ImageField

Я настроил модель деятельности Django, которая содержит следующее поле:

class Activity(models.Model):
    ...
    thumbnail = models.ImageField(upload_to="thumbs/", blank=True, null=True)

Через интерфейс администратора я могу загрузить изображение, которое правильно помещено в папку thumbs домашнего каталога. Когда я пытаюсь отредактировать созданное мной действие, интерфейс говорит: Currently: thumbs/image.png которая является гиперссылкой, указывающей на http://localhost:8000/media/thumbs/image.png, Когда я нажимаю эту ссылку, я получаю сообщение об ошибке 404 страница не найдена. Как получить ссылку, указывающую на изображение, которое я загрузил? И если возможно, как я могу отобразить изображение прямо в интерфейсе администратора?

РЕДАКТИРОВАТЬ:

MEDIA_ROOT = '/Users/.../mysite/media/'; MEDIA_URL = 'http://localhost:8000/media/';

Содержание urls.py:

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
)

Спасибо!

1 ответ

Решение

settings.py

from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
)+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

urlpatterns += staticfiles_urlpatterns()

models.py

class Activity(models.Model):
    ...
    thumbnail = models.ImageField(upload_to="thumbs/", blank=True, null=True)

    def image_(self):
        return '<a href="/media/{0}"><img src="/media/{0}"></a>'.format(self.thumbnail)
    image_.allow_tags = True



class AdminName(admin.ModelAdmin):
    .........
    list_display = ('image_',)
Другие вопросы по тегам