【问题标题】:how to display image to template from imagefield in django如何在 django 中的 imagefield 中显示图像到模板
【发布时间】:2016-06-25 01:40:41
【问题描述】:

我的模板无法显示来自我的模型的图像。

src 属性带有正确的字段,但它不显示正确的图像

模板:

       <div class="grid-product">
  
    {% for p in prod %}
    
    
    <div class="  product-grid">
        <div class="content_box"><a href="single.html">
        <div class="left-grid-view grid-view-left">
             <img  class="img-responsive watch-right" alt="not found" src="{{p.photo}}"/>
                <div class="mask">
                    <div class="info">Quick View</div>
                </div>
              </a>
        </div>
            <h4><a href="#"></a></h4>
             <p>It is a long established fact that a reader{{ p.p_name }}</p>
             Rs. 499
        </div>
   </div>
    {% endfor %} 
         <div id="show"></div>
    <div class="clearfix"> </div>
</div>

型号:

class product(models.Model):
    p_id=models.AutoField(primary_key=True)
    ps_id=models.ForeignKey(alphasubcat,on_delete=models.CASCADE)
    p_name=models.CharField(max_length=100,null=True,blank=True)
    photo = models.ImageField(upload_to='productimage',blank=True)
    price=models.IntegerField()
    def __str__(self):
        return self.p_name

查看:

def produc(request):
    param=dict()
    cat=categories.objects.all()
    sub=subcategories.objects.all()
    temp=request.GET['p']
    prod=product.objects.filter(ps_id=alphasubcat.objects.get(as_name=temp))
    param['prod']=prod
    param['cat']=cat
    param['sub']=sub
    return render(request,"product.html",param)

【问题讨论】:

标签: django python-3.x


【解决方案1】:

尝试将您的代码更改为

 <img  class="img-responsive watch-right" alt="not found" src="{{p.photo.url}}"/>

【讨论】:

  • html源码中src中显示的内容是什么?
  • 我的 settings.py 文件详情 STATIC_URL = '/static/' STATICFILES_DIRS=[ os.path.join(BASE_DIR,"static"), ] STATIC_ROOT=os.path.join(os.path.目录名(BASE_DIR),"static_cdn") MEDIA_ROOT=os.path.join(os.path.dirname(BASE_DIR),"src/media") MEDIA_URL="/img/"
  • {{ STATIC_URL }} 显示什么?
  • 如果去/img/productimage/pic3.jpg,图片是否显示?
  • /home/lcom52/Desktop/happydeal/static_cdn {{ STATIC_URL }}
【解决方案2】:

在您的本地服务器上

<img  class="img-responsive watch-right" alt="not found" src="127.0.0.1:8000/{{p.photo.url}}"/>

settings.py 中的设置很好

STATIC_URL = '/static/' 

STATICFILES_DIRS=[ os.path.join(BASE_DIR,"static"), ] 

STATIC_ROOT=os.path.join(os.path.dirname(BASE_DIR),"static_cdn") 

MEDIA_ROOT=os.path.join(os.path.dirname(BASE_DIR),"src/media")

MEDIA_URL="/img/" –

还要调试 STATIC_ROOT 是返回域/链接到图像

【讨论】:

    【解决方案3】:

    您可以通过{{p.photo.url}} 访问图片网址。但就像在你的模型中一样:

    photo = models.ImageField(upload_to='productimage, blank=True)
    

    (blank=True) 你会想使用类似的东西:

    <img  class="img-responsive watch-right" alt="not found" src={% if p.photo %}"{{p.photo.url}}"{% else %}"/something/else.png"{% endif %}/>
    

    【讨论】:

    • 不错的镜头。一个问题:在关闭"{{p.photo.url}}" 的引号后,我得到tag start is not closed 作为语法错误。有什么想法吗?
    • @chefarov 这可能是开始和结束引号的简单不匹配,因为您知道引号也表现为括号。如果你能分享你的代码,我可以研究一下。
    【解决方案4】:

    这对我的问题有用 这里静态是我的媒体文件的根文件夹

    img  class="img-responsive watch-right" alt="not found" src="static/{{p.photo}}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-03
      • 2014-08-31
      • 2017-05-31
      • 2015-12-04
      • 1970-01-01
      • 1970-01-01
      • 2011-11-10
      • 1970-01-01
      相关资源
      最近更新 更多