将上传的图片(插图)放在Zinnia Blog Post文本中

时间:2018-08-13 22:20:59

标签: python django media blogs zinnia

我们的团队已决定利用百日菊属的图书馆来构建我们的站点博客。我们喜欢快速集成以及如何使用许多结构预置来节省一些启动时间,但我仍然想尝试自定义。我有两个问题。第一个与下面的代码有关。借助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/')

0 个答案:

没有答案