繁体   English   中英

如何在模板内部确定是否上传了图片?

[英]How can I determine, inside of the template, whether or not an image was uploaded?

我试图确定用户通过表单提交数据后是否已上传图像。

假设我有一个模型:

class Book(models.Model):
    cover_image = models.ImageField(upload_to="foo/bar/fun")

不需要封面图像,因此可以在没有cover_image值的情况下创建此对象。

现在,在模板中,我想检查是否有上传的文件。 如果没有上传的文件,则应显示默认的HTML块。 我最初的方法似乎不起作用,但我陷入了困境。 由于某种原因,图像区域显示时好像要显示图像;否则,图像区域就会显示出来。 因此,将显示替代文本。 实际上应该显示的是不同的HTML块,如下所示

{% if my_book_context_object.cover_image %}
<img src="the image"></img>
{% else %}
<img src="placeholder image"></img>
{% endif %}

我当时考虑过可以检查模型方法的内部,但是我不确定要检查什么:

class Book(models.Model):
    cover_image = models.ImageField(upload_to="foo/bar/fun")

    def has_cover_image(self):
        ...unknown check logic...
        return True or False

我想,无需检查您是否有图像。

您可以在模型中默认图像。 默认值为,如果没有人上传图像,将显示默认图像。 当您“上载”时,路线会更改。

class Book(models.Model):
    cover_image = models.ImageField(upload_to='foo/bar/fun', default='foo/bar/fun/taco.jpg')

根据我的说法,您的代码必须有效,我不知道为什么不行。 你舒尔德写了什么错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM