django - ValueError at / 'pic' 属性没有与之关联的文件
问题描述
我有一个简单的模型,其中 pic 字段具有 null 和空白
class PostForNewsFeed(models.Model):
title = models.CharField(max_length=100, blank=True)
description = models.CharField(max_length=255, blank=True)
slug = models.SlugField(unique=True, max_length=100, blank=True)
pic = models.ImageField(upload_to='path/to/img', null=True, blank=True, default='')
{% if post.pic.url %}
<a href="{% url 'post-detail' post.id %}"
><img class="card-img-top" src="{{ post.pic.url }}" alt=""
/></a>
{% endif %}
当我在没有图片的情况下提交时,我得到的图片属性与文件无关。
我的代码在模板中似乎很好。
解决方案
你应该检查if post.pic
,而不是if post.pic.url
:
{% if post.pic %}
<a href="{% url 'post-detail' post.id %}"><img class="card-img-top" src="{{ post.pic.url }}" alt=""/></a>
{% endif %}
根据讨论,在您的模板中,您经常使用post.pic.url
模板标签等。例如:
{% post_to_facebook post.pic.url "Post to Facebook" %}
您需要将这些设置为有条件的,因为如果a 不存在,您将无法获取.url
a 。post.pic
post.pic
因此,您需要将其包装在一个{% if … %}
条件中:
{% if post.pic %}
{% post_to_facebook post.pic.url "Post to Facebook" %}
{% endif %}
推荐阅读
- flutter - 如何在堆栈中重叠此图像?
- python-3.x - QLayout:尝试将 QLayout "" 添加到 QWidget "",它已经有一个布局 PyQt5 Python
- pandas - 如何使用自定义标记器构建 CountVectorizer?
- c# - C# 等效于 VB.Net 选择案例 true
- javascript - Selenium WebDriver 功能 elementIsVisible 不适用于所有按钮
- reactjs - 如何使用 redux 中间件自动刷新 JWT 令牌?
- linux - 如何重命名(通过添加前缀)从当前文件夹开始的所有文件和文件夹?
- sql - PostgreSQL,插入与选择失败冲突做更新
- json - 当以下脚本运行时,如何将来自 API 查询的 JSON 响应捕获到单独的 output.json 文件中?#初学者#Ruby
- r - 我可以只显示我的热图的一部分,例如上部吗?