图像未在模板中显示

2024-04-24 10:46:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个应用程序,我需要在html模板上显示一个图片。你知道吗

你知道吗型号.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"

你知道吗视图.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))

你知道吗网址.py你知道吗

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

你知道吗设置.py你知道吗

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

你知道吗主页.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 %}

我该怎么办?你知道吗


Tags: pyimageselfformmodelshtmltemplatedetails
1条回答
网友
1楼 · 发布于 2024-04-24 10:46:06

pic_detailscateledetails对象。你知道吗

这个类有一个名为imgsrcImageField。因为imgsrc不是ForeignKey,所以不能对它使用ForeignKey<field>_set语法。相反,只需直接引用字段:

{% block body %}
    <form action="" method="post" enctype="multipart/form-data">
        {% csrf_token %}
        <h4>What sound does it make?</h4>
        <img src="{{ pic_details.imgsrc.url }}" alt="image">
    </form>
{% endblock %}

相关问题 更多 >