2011-07-23 5 views
0

私はdjangoの初心者です。私はdjango 1.3でプロジェクトを開発しています。問題は、私はここで管理パネルから管理パネルからアップロードされたテンプレートに画像を表示する方法Django 1.3

class About(models.Model): 

    image = models.ImageField(upload_to='about') 
    files = models.FileField(upload_to='about') 

を画像をアップロードしてるのは、私のテンプレートタグ

<img class="profile_pic" src="{{ about.image }}" /> 

私の設定ファイルは、私は画像がアップロードされていることを確認

MEDIA_ROOT = path("media/") 
MEDIA_URL = '/media/' 
STATIC_ROOT = '' 
STATIC_URL = '/static/' 
ADMIN_MEDIA_PREFIX = '/static/admin/' 
STATICFILES_DIRS = (
    path('static/'), 
) 

以下の通りです〜/ media/about/image_nameにコピーします。問題はテンプレート内で "/ about/imagename"と表示されますが、shoingでは表示されません。私が手動でそのイメージURLに行くと、404エラーが表示されます。

あなたのurls.pyでも

答えて

0

それは働いていた... urls.pyファイルにsetting.MEDIA_ROOTをインポートした後、私はメディアを追加しましたそれで今働いているITs ...

BTWそれも必要です

{{ about.image.url }} 

@zsquare(感謝)が、以前ここで言ったように、メディアルール

(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': MEDIA_ROOT}), 
+0

こんな可能性を忘れてしまった。 – zsquare

+0

あなたのソリューションはうまくいくでしょうが、djangoからメディアを提供するのは良い考えではありません。 Apacheなどがはるかに適しています。更新された回答を確認してください。 – zsquare

3

<img class="profile_pic" src="{{ about.image.url }}" />

UPDATE

:!

if settings.DEBUG: 
    urlpatterns += patterns('', 
     (r'^' + settings.MEDIA_URL.lstrip('/'), 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}) 
+0

はハズレです!働いていない。しかし、イメージは現在OKであるはずのパスを示しています。メディアフォルダにURLルールを使用する必要がありますか? – themunna

関連する問題