2017-05-07 4 views
0

イメージフィールドに読み込まれたイメージがビューに表示されないため、Djangoプロジェクトで何かが失敗します。DJangoのビューでImageFieldの写真が見えません[解決]

https://www.dropbox.com/sh/fvx6sfmxgm08xo6/AABVR-AQGeF52pCxlzVaLuDaa?dl=0

カニの写真、それはのImageFieldの写真だと、「静的」との負荷ですが、2番目。

enter image description here

モデル:

class foto(models.Model): 
    nombre=models.CharField(max_length=50) 
    imagen=models.ImageField(upload_to='fotos/') 
    def __str__(self): 
     return self.nombre 

ビュー:

def general(request): 
    lista=foto.objects.all() 
    context={'material':lista} 
    return render(request,'indice.html',context) 

設定:

STATIC_URL = '/static/' 
MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 

MEDIA_URL = '/media/' 
STATICFILES_DIRS = (
'/media/fotos/', 
    ) 

HTML:

{% load staticfiles %} 
<html> 
    <head> 
     <title>Album de fotos</title> 
    </head> 
    <body> 
     <img src="{% static 'cangrejo.jpg' %}" /> 
     {% if material %} 
      {% for a in material %} 
       <li>{{a.nombre}}: {{a.imagen}}</li> 
       <img src="{{a.imagen}}" /> 
      {% endfor %} 
     {% else %} 
      <p>No hay fotos</p> 
     {% endif %} 
    </body> 
</html> 

管理者のURL:

from django.conf.urls import url, include 
from django.contrib import admin 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'',include('colecion.urls')), 
] 

閲覧者のURL:

from django.conf.urls import url, include 
from colecion import views 

urlpatterns =[ 
    url(r'^$',views.general), 
] 

編集:私はすでに問題を解決!ドキュメントから

settings.py

STATIC_URL = '/static/' 
MEDIA_ROOT = os.path.join(BASE_DIR, 'ciencia/static') 

models.py

foto=models.ImageField() 

HTML

<img src="{% static alfa.foto %}" /> 
+1

{{a.imagen.url}}に、これは

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

変更のurls.pyに追加。 –

+0

@NickWesemanドロップボックスのリンクでは、DJangoの完全なプロジェクトを見ることができます。このプロジェクトには1つのモデルと1つのビューしかありません。 –

+1

@MiguelAlparezここでコードを入力してください。誰もがこのウェブサイトの形式とは対照的に、あなたのDropboxのリンクを開こうとしません。 –

答えて

0

MEDIA_URL - 「そのディレクトリへの絶対パス意志ユーザーがアップロードしたファイルを保持する」

MEDIA_ROOT - 「メディアが格納されたファイルを管理するために使用MEDIA_ROOT、から提供空でない値に設定する場合、それがスラッシュで終わらなければなりませんハンドルURLあなたは、両方の開発に務めなければ、これらのファイルを設定する必要があります。と生産環境。

現在の設定のMEDIA_URLが正しく表示されません。 URLでなければなりません。ファイルシステムのパスに設定してください。

MEDIA_URL = '/media/' 
0

のようなものを試してみて、我々はそれを見ることができますので、この記事内のコードを入れてください{{a.imagen}}

関連する問題