私は Django を初めて使用し、現在 Django Admin でアップロードされた画像を表示する際に問題が発生しています。ここでスタックオーバーフローに投稿された多くのQとAをフォローしましたが、それらの中で私の問題で機能しました。ここのコーディング忍者のアクティブな人がこの問題を解決してくれることを願っています. 問題の詳細図は次のとおりです。
settings.pyで MEDIA_ROOT と MEDIA_URL を定義しました
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) MEDIA_ROOT = os.path.join(BASE_DIR, "media") MEDIA_URL = "/media/"
これはmodels.pyの私のアップロード モデルです:
from django.utils.html import mark_safe class ImageDetails(models.Model): image = models.ImageField(null=True) def image_img(self): if self.image: return mark_safe('<img src="%s" height="125px" width="125px"/>' % (self.image.url)) else: return '(No image found)' image_img.short_description = 'Thumbnail'
私のアプリケーションurls.pyで:
urlpatterns = [ url(r'^inputImage', views.inputImage, name='inputImage'), url(r'', views.index), ] urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
私のadmin.pyで:
class ImageDetailsAdmin(admin.ModelAdmin): fields = ["image"] #for file upload list_display = ("image_img",) admin.site.register(ImageDetails, ImageDetailsAdmin)
イメージはProjectDIR/mediaに正常に保存されました。HTML は URL を返します: http://127.0.0.1:8000/media/imagename.jpg img タグ。しかし、ページは画像の読み込みに失敗します (URL http://127.0.0.1:8000/media/imagename.jpgを使用すると、常にインデックス ページにリダイレクトされます)。Django バージョン 1.10 を使用しています