3

次のフィールドを含むアクティビティの Django モデルをセットアップしました。

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

管理インターフェースを介して、ホームディレクトリのサムフォルダーに正しく配置された画像をアップロードできます。作成したアクティビティを編集しようとすると、インターフェイスに次のように表示されます。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)),
)

ありがとうございました!

4

1 に答える 1

9

設定.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_',)
于 2013-03-01T13:09:11.830 に答える