16

誰かがこの問題で私を助けることができます:私はDjangoプロジェクトを持っています、

settings.pyで

 MEDIA_ROOT = 'C:/Users/hl/workspace/beer/media'
 MEDIA_URL = '/media/'
 STATICFILES_DIRS = (
    'C:/Users/hl/workspace/beer/media'
 )

およびmodels.py

image1= models.ImageField(upload_to=settings.MEDIA_ROOT)

とurl.pyで

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

ビューで

def allBeer(request): 
      beers=Beer.objects.all().order_by("name")
      context={'beers': beers}
      return render_to_response('AllBeers.html',context,context_instance=RequestContext(request))

とhtmlで

 {%for beer in beers %}
    <p>
        <a href="/beers/{{beer.slug}}/">
            <img scr="{{beer.image1.url}}">{{beer}}
        </a>
    </p>
 {% endfor%}

画像の読み込みに問題はありませんが、画像はhtmlファイルに表示されません。私はインターネットからたくさん検索して読んだことがありますが、それでも理解できませんでした。

誰か教えてもらえますか?

4

4 に答える 4

9
image1= models.ImageField(upload_to=images)


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
from project_name import settings

admin.autodiscover()
urlpatterns = patterns('',
    ...........
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

urlpatterns += staticfiles_urlpatterns()


<img src="{{MEDIA_URL}}{{beer.image1}}">

settings.py

import os

PROJECT_ROOT = os.path.join(os.path.dirname(__file__), '..')
SITE_ROOT = PROJECT_ROOT


MEDIA_ROOT = os.path.join(SITE_ROOT, 'media')
MEDIA_URL = '/media/'


STATIC_ROOT = os.path.join(SITE_ROOT, 'static')
STATIC_URL = '/static/'


STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    os.path.join(SITE_ROOT, 'staticfiles'),
)

TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(SITE_ROOT, 'templates'),
)
于 2013-03-02T13:50:45.403 に答える
5

src画像の属性をいじっています。それはただあるべきです-

<img src="{{beer.image1.url}}" /> <!-- from the media url -->

最後に何も追加しないでください-djangoは画像を提供するURLを知っています-それがモデルのImageFieldが行うことです。

url confに実際に何か問題があるかどうかはわかりませんが、ドキュメントで推奨されているパターンは-

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = patterns('',
    # ... the rest of your URLconf goes here ...
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
于 2013-03-02T13:39:01.160 に答える
3
于 2021-04-19T03:24:09.357 に答える
0

画像の場所は重要です。静的フォルダにある必要があり、設定で定義する必要があります。

于 2019-08-30T10:20:56.020 に答える