【发布时间】:2019-07-05 07:17:22
【问题描述】:
我的应用中有一部分允许自定义徽标。
默认对象(和对象视图)状态是没有自定义徽标,但如果存在,请将标题替换为自定义徽标导航栏。
logo 是 co(mpany) 模型上的标准 ImageField:
models.py:
class Co(models.Model):
logo = models.ImageField(blank=True)
模板:
{% if co.logo %}
{% block navbar %}
{% include 'templates/navbar_logo.html' %}
{% endblock %}
{% endif %}
我也尝试过使用 {% if co.logo == None %}、{% if not ... %}、{% if co.logo.url %} 并尝试使用 co.logo|default_if_none:"" 对逻辑进行建模,但在未设置徽标的情况下,视图会抛出:
ValueError at /co/foo
The 'logo' attribute has no file associated with it.
for...empty 也不行
{% for co.logo.url in co %}
...
{% empty %}
...
{% endfor %}
在 Django 外壳中:
(带标志)
c.logo >> <ImageFieldFile: logo.png>
c.logo.url >> '/media/logo.png'
(无标志)
b.logo >> <ImageFieldFile: None>
是否有内置的 django 模板标签过滤器,仅当字段上传了图像时才允许此条件通过 True?否则不要加载导航块?谢谢
【问题讨论】:
标签: django django-models django-templates