图像不显示在模板django中

时间:2017-09-16 17:47:46

标签: python django

我有这个应用程序,我需要在html模板上显示图像,这是不会发生的。

models.py

class cateledetails(models.Model):
    cdid=models.IntegerField(unique=True,default=0)
    cid=models.ForeignKey(category,to_field='cid',on_delete=models.CASCADE)
    elename=models.CharField(max_length=20)
    imgsrc=models.ImageField(upload_to='elements/',blank=True)

    def __unicode__(self):
        return u"{} {}".format(self.cdid,self.elename)

    class Meta:
        db_table="cateledetails"

views.py

def mainpage(request):
    pic_details=get_object_or_404(cateledetails,pk=1)

    template=loader.get_template('student/mainpage.html')
    context={'pic_details': pic_details,}
    return HttpResponse(template.render(context,request))

urls.py

urlpatterns= [
url(r'^mainpage/$',views.mainpage ,name='mainpage'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

settings.py

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

mainpage.html

{% block body %}

    <form action="" method="post" enctype="multipart/form-data">
        {% csrf_token %}
        <h4>What sound does it make?</h4>
        {% for image in pic_details.imgsrc_set.all %}

        <img src="{{ image.imgsrc.url }}" alt="image">
        {% endfor %}

    </form>


{% endblock %}

我该怎么办?

1 个答案:

答案 0 :(得分:2)

pic_detailscateledetails个对象。

此类只有一个名为ImageField的{​​{1}}。由于imgsrc不是imgsrc,因此您无法使用ForeignKey ForeignKey语法。相反,只需直接引用该字段:

<field>_set