我们的团队已决定利用百日菊属的图书馆来构建我们的站点博客。我们喜欢快速集成以及如何使用许多结构预置来节省一些启动时间,但我仍然想尝试自定义。我有两个问题。第一个与下面的代码有关。借助Zinnia的结构,它们可以通过不可见的视图和预设变量为您提供所有内容,这很不错。
尽管我们的内容创建者希望从entry-image
块中获取单独的img,并将特定段落中的图像放入entry-content
块的{{object_content | safe}}部分中。如何实现这一目标?我的第一个直觉是,我们将不得不覆盖视图并拦截该变量,但是我不确定确切如何完成此操作。
{% block entry-image %}
{% if object.image %}
<div class="entry-image">
{% if continue_reading %}
{% endif %}
<figure itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
<img onerror="this.style.display='none';" style="max-height:300px;" class="img-fluid" src="{{ object.image.url }}" alt="{{ object.image_caption|default:object.title }}" itemprop="contentUrl" />
{# <img class="" src="http://placehold.it/750x300" alt="Card image cap"> #}
{% if object.image_caption %}
<figcaption itemprop="caption">{{ object.image_caption }}</figcaption>
{% endif %}
</figure>
{% if continue_reading %}
{% endif %}
</div>
{% endif %}
{% endblock entry-image %}
<!-- BLOG CONTENT (only visible on article page)-->
{% block entry-lead %}
{% if continue_reading and object.lead %}
<div class="entry-summary" itemprop="headline">
{{ object.html_lead|truncatewords_html:25|safe }}
</div>
{% endif %}
{% endblock entry-lead %}
{% block entry-content %}
{% if continue_reading and not object.lead %}
<div class="entry-content" itemprop="articleBody">
{{ object_content|truncatewords_html:25|safe }}
</div>
{% elif not continue_reading %}
{{ object_content|safe }}
{% endif %}
{% endblock entry-content %}
其次,我在访问服务器上的该映像时遇到问题。以下是我最近的代码。最初,我没有if statement
块,它在服务器上和在我的环境中都可以正常工作,但是我们的CTO通知我,服务器每次推送都会“刷新”或“重置”服务器上的文件,因此我们需要将其本地存储在服务器上。
因此,我更新了if
,并将其存储在他建议的/mnt/django/uploads/
文件夹中。现在,无论何时我们上传图像,它们都将不再显示。有什么建议吗?
MEDIA_URL = '/uploads/'
if DEBUG == False:
MEDIA_ROOT = os.path.join('/mnt/django/', "uploads/")
else:
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads/')