2016-08-23 10 views
1

固定 これは私の解決策でした。メインプログラムurls.pyにこれらの行を追加する必要がありました。 django.confインポート設定からDjango静的イメージファイルリソースを読み込めません

django.conf.urls.staticインポート静的

urlpatternsから + =静的(settings.MEDIA_URL、DOCUMENT_ROOT = settings.MEDIA_ROOT)

Iアイテムと呼ばれるモデルを有しますそこに私はイメージフィールドを持っています。私は、データベースにイメージを持つ新しいアイテムを追加し、インデックステンプレートの中にロードしようとしました。しかし、私はそれが言うコンソール( "WEBSITENAME/items_media/items/image.jpg 404(Not Found)")を見るとイメージを取得しません。

私はこの問題がsettings.pyファイル内にあると思うが、私がここで間違っていたことを正確に理解してください。

index.htmlをテンプレート

{% load static %} 
<div class="item" style="background-image: url('{{ item.img.url }}')">` 

Model.py

class Item(models.Model): 
    name = models.CharField(max_length=200) 
    img = models.ImageField(upload_to='items', default='', blank=True, null=True) 

    def __str__(self): 
     return "%s" % (self.name) 

Views.py

def index(request): 
    latestItems = Item.objects.all().order_by('-id')[:3][::-1] 
    return render(request, 'webshop/index.html', {'latestItems' :latestItems}) 

settings.pyあなたsettings.py

BASE_DIR = os.path.dirname(os.path.dirname(__file__)) 

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"), 
) 
STATIC_URL = '/static/' 

、あなたが示されているディレクトリのルート・構造により、このdocument

を読んで

SITE_ROOT = os.path.dirname(os.path.realpath(__file__)) 
MEDIA_ROOT = os.path.join(SITE_ROOT, 'site_media/') 
MEDIA_URL = 'site_media/' 
+0

私はそれを修正することができました。メインのurls.pyファイルに次の行を追加する必要がありました。django.confインポート設定から django.conf.urls.staticからインポートstatic urlpatterns + = static(settings.MEDIA_URL、document_root = settings.MEDIA_ROOT) – DjangoPleb1234

+0

安全のために、あなたが追加される場合があり、心に留めておく: '場合settings.DEBUG: urlpatterns + =静的(settings.STATIC_URL、DOCUMENT_ROOT = settings.STATIC_ROOT) urlpatterns + =静的(settings.MEDIA_URL、DOCUMENT_ROOT =設定。 MEDIA_ROOT) ' – Jon

答えて

0

は、私は上記の設定は動作するはずだと思います。しかし、それをテストしていない。それが動作するかどうか私に教えてください。

+0

提供されているドキュメントを理解することは、私のようなdjangoをかなり新しくした人にとっては非常に難しいことです。私はコードを試みたが、不幸にも何も変わっていない。私はすでにCSSファイルを完璧に読み込むことができるので、STATIC_URL = '/ static /' btwをすでに持っていました。 – DjangoPleb1234

+0

1。静的なファイルのリンクを確認する - 静的なフォルダを置いてください。この{{template/css.css}}や{{}} ctl + spaceのようなテストをしてください。 –

+0

を細かくリンクすると、 、{{item.anyfeilds}}があなたのページ –

0

あなたが持っている:

upload_to='items' 

しかし:

{{ item.img.url }} 

はそれがあるべきか?

{{ items.img.url }} 
+0

upload_to = 'items'はitemsという名前のフォルダですitem.img.urlはオブジェクトです – DjangoPleb1234

関連する問題