2017-03-18 11 views
0

私は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 &nbsp; </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 &nbsp; <span style="color:rebeccapurple;opacity: 0.5">{{ discount }}%</span></p> 
           {% endif %} 
           <p class="sizer" style="color:black" >MUR &nbsp;</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) 
+0

'MEDIA_ROOT = BASE_DIR + os.path.join(BASE_DIR、 'store/media /')'の後ろに 'print(MEDIA_ROOT)'を置きます。何を手に入れますか? –

+0

[Django静的なメディアが表示されない画像の複製](http://stackoverflow.com/questions/41660546/django-static-media-not-showing-picture) – e4c5

+0

@nik_m実際には空白を表示します(ヒロクの展開) – YourfavOreo

答えて

0

メディアファイル:

urlpatterns = [ 

    url(r'^homepage/', include('homepage.urls')), 
    url(r'^login/', views.login, {'template_name': 'login.html'}, name='login'), 
    url(r'^register/', include('register.urls')), 
    url(r'^admin/', admin.site.urls), 

] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) # For serving media files on development server 
+0

私の質問editted – YourfavOreo

関連する問題