私はDjangoのドキュメントを何度も読んでいますが、複数のstackoverflowに関する質問がありましたが、メディアがまったく動作することはありません。エラーはありませんが、ファイルを取得するとエラーが発生します。Django:メディアファイルの提供に問題があります
メディアファイルの配信方法を理解するのに役立つヘルプや追加情報があります。
/store { static, media, migrations,templates, etc }
/venv
/staticfiles
manage.py
Procfiles
README
requirements.txt
runtime.txt
マイrequirements.txt画像フィールドと
appdirs==1.4.3
Django==1.10.5
gunicorn==19.6.0
olefile==0.44
packaging==16.8
Pillow==4.0.0
psycopg2==2.7
pyparsing==2.2.0
six==1.10.0
virtualenv==15.1.0
whitenoise==3.3.0
モデル: クラスの製品(モデル
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_ROOT=BASE_DIR + os.path.join(BASE_DIR, 'store/media/')
MEDIA_URL='media/'
Settings.pyは、私はいつものフォルダ構造を持っています。モデル):
product_category = models.CharField(max_length=20)
product_id = models.AutoField(primary_key=True)
product_name = models.CharField(max_length=50)
product_description = models.CharField(max_length=100)
small_price = models.IntegerField()
medium_price = models.IntegerField()
large_price = models.IntegerField()
rating = models.FloatField()
image = models.ImageField(default='static/imgs/products/Cleanser.png')
テンプレートコードを呼び出すメディア:
{% for product in all_products %}
<div class="item col-xl-4 col-lg-4" style="max-width: 400px;border-color:black;" >
<div class="thumbnail" style="box-shadow: 1px 1px 10px grey;">
{% load staticfiles %}
<img class="group list-group-image" style="height:200px;width:120px;" src="{{ product.image }}">
<div class="caption" style="text-align:Center;">
<p class="group inner list-group-item-heading" style="font-family:Raleway;font-size:23px;color:black;">
<strong>{{ product.product_name}}</strong></p>
<p class="group inner list-group-item-text" style="font-family:Roboto,sans-serif;font-style:italic;color:#222;opacity: 0.5">
{{ product.product_description }}</p>
<div class="row">
<div class="col-xs-12 ">
<div class="form-group" >
<label for="size">Sizes</label>
<select class="form-control" class="size" style="max-width: 50%;margin:auto;">
{% if product.product_category == "Milkshakes" %}
<option value="{{product.medium_price}}" > Medium</option>
{% else %}
<option value="{{product.small_price}}" > Small (285ml)</option>
<option value="{{product.medium_price}}" >Medium (350ml) </option>
<option value="{{product.large_price}}">Large (500ml)</option>
{%endif%}
</select>
<input type="hidden" value="{{product.product_id}}" class='hidden'>
<p style="margin-top:15px;"> <strong>Quantity </strong> </p>
<button type="button" class="btn btn-default btn-circle less" >-</button>
<input type="button" class="btn btn-default btn-circle quantity" value=1></input>
<button type="button" class="btn btn-default btn-circle more" >+</button>
<p> </p>
{% if discount != 0 %}
<p style="font-family: Raleway;color:black;font-size: 20px"> Discount <span style="color:rebeccapurple;opacity: 0.5">{{ discount }}%</span></p>
{% endif %}
<p class="sizer" style="color:black" >MUR </p> <p class="price" style="color:rebeccapurple;opacity: 0.8">{{ product.small_price }}</p>
<p> </p>
<button type="input" class="btn btn-success buy" style="border-
color:#8A2BE2;background-color: #8A2BE2;margin-top:-20px;font-
size:17px;font-family: Raleway"> Add <i class="fa fa-shopping-cart"
aria-hidden="true"></i></button>
</div>
</div>
</div>
</div>
</div>
</div>
{% endfor%}
編集:
URLs.pyメディアserivingのための追加:私も役立つように私のメインurls.pyを修正する必要がありました
from django.contrib.staticfiles.urls import static,staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns() urlpatterns += staticfiles_urlpatterns()
-urlpatterns += static(MEDIA_URL, document_root=MEDIA_ROOT) +urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
'MEDIA_ROOT = BASE_DIR + os.path.join(BASE_DIR、 'store/media /')'の後ろに 'print(MEDIA_ROOT)'を置きます。何を手に入れますか? –
[Django静的なメディアが表示されない画像の複製](http://stackoverflow.com/questions/41660546/django-static-media-not-showing-picture) – e4c5
@nik_m実際には空白を表示します(ヒロクの展開) – YourfavOreo