2016-08-31 4 views
0

私はDjangoの初心者です。現在、Django Adminにアップロードされた画像を表示する際に問題があります。私は多くのポストされたQとここにスタックオーバーフローではなく、私の問題で働いたそれらの。私はここでコーディング忍者のアクティブな任意のこの問題に私を助けることができることを願っています。ここでは、問題の詳細図は次のとおりです。Django Admin:正しい画像アップロードパスを決定してください

  1. 私はこれがmodels.pyの私のアップロードモデルですsettings.py

    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
    MEDIA_ROOT = os.path.join(BASE_DIR, "media") 
    MEDIA_URL = "/media/" 
    
  2. でMEDIA_ROOTとMEDIA_URLを定義しています

    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' 
    
  3. 私のアプリケーションでurls.py

    私のadmin.pyで
    urlpatterns = [ 
        url(r'^inputImage', views.inputImage, name='inputImage'), 
        url(r'', views.index), 
    ] 
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 
    
  4. class ImageDetailsAdmin(admin.ModelAdmin): 
        fields = ["image"] #for file upload 
        list_display = ("image_img",) 
    
    admin.site.register(ImageDetails, ImageDetailsAdmin) 
    

イメージが正常にPROJECTDIR /メディアで保存しました。 HTMLはimgタグにurl:http://127.0.0.1:8000/media/imagename.jpgを返します。しかし、ページはイメージをロードできません(私はURLを使用するときはいつでもインデックスページにリダイレクトされますhttp://127.0.0.1:8000/media/imagename.jpg)。私はDjangoバージョン1.10を使用しています

+0

MEDIA_URLをチェックします。あなたは2回割り当てられました。最初の出現でMEDIA_ROOTを使うつもりだと思います。 – Abhinav

+0

Opps。実際には元のコードのメディアルートでした。ここで編集を完了します。 – jonilyn2730

答えて

0

この問題は、DjangoのURLに関するものです。

 url(r'', views.index, name='index'), 

私は、コードを変更することで問題を解決:プロジェクトのメインのURLに次のコードを

 url(r'^$', views.index, name='index'), 

そして追加私はアプリのurls.pyに次のURLPATTERNを宣言したため、問題が発生しました.py:

if settings.DEBUG: 
     urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 
関連する問題