我试图确定用户是否在通过表单提交数据后上传了图片。
我们说我有一个模特:
class Book(models.Model):
cover_image = models.ImageField(upload_to="foo/bar/fun")
不需要封面图像,因此可以在没有cover_image
值的情况下创建此对象。
现在,在模板中,我想检查是否有上传的文件。如果没有上传文件,则应显示默认的HTML块。我最初的方法似乎不起作用,而且我被困住了。 出于某种原因,图像区域显示的是,如果没有图像,则显示图像;因此,替代显示alt文本。实际应该显示的是不同的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
答案 0 :(得分:1)
我猜不需要检查你是否有图像。
您可以在模型中默认图像。默认是,如果没有人上传图像,则会显示默认图像。当您上传&#39;路线改变了。
class Book(models.Model):
cover_image = models.ImageField(upload_to='foo/bar/fun', default='foo/bar/fun/taco.jpg')
根据我的说法,你的代码必须有效,我不知道为什么不行。 你应该写下你得到的错误。