烧瓶时刻的时刻是不确定的

时间:2017-02-13 02:23:36

标签: python flask momentjs

在我最近的项目中,我选择了flask-moment而不是moment.js。但是,它会一直显示UndefinedError: 'moment' is undefined

我使用了这样的工厂模式:

from config import config
from exts import babel, db, login_manager, mail, moment

def create_app(config_name):

    app = Flask(__name__)
    app.config.from_object(config[config_name])

    ...

    moment.init_app(app)

    return app

我在{{ moment.include_moment() }}文件末尾添加base.jinja2,并且已成功加载。我写了一个包含这段代码的components.jinja2

{% macro render_file_thumbnail(file) %}
<div class="">
    <hr>
    <div class="media">
        <div class="media-left">
            <a href="{{ url_for('people.profile', user_id=file.uploader.id ) }}">
                <img class="media-object file-th-avatar img-rounded" src="{{ file.uploader.avatar }}" alt="{{ file.uploader.nickname }}">
            </a>
        </div>
        <div class="media-body">
            <h6 class="file-th-header">
                <a href="{{ url_for('file.file_display', page_number=1, file_id=file.id) }}">
                    {{ file.file_name }}
                </a>
            </h6>
            <p>
                <span class="text-muted fa fa-fw fa-institution"></span>
                <a href="{{ url_for('course.course', course_id=file.course.id, page_number=1) }}">
                    {{ file.course.course_name }}
                </a>
                <span class="text-muted fa fa-fw fa-pencil"></span>
                {{ file.author }}
                <span class="text-muted fa fa-fw fa-download"></span>
                {{ file.downloaded_times}} {{ _('time(s)') }}
                <span class="text-muted fa fa-fw fa-clock-o"></span>
                {{ moment(file.uploaded_time).fromNow(refresh=True) }}
            </p>
        </div>
    </div>
</div>
{% endmacro %}

我将其导入渲染模板,然后出现错误。

但如果我使用{% include %}而不是marco,问题就解决了!那么我怎样才能继续使用marco并同时解决问题呢?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您没有指示它,则不会将上下文传递给宏。您可以通过导入带上下文的宏

来解决此问题
{% from "your_macro_file" import render_file_thumbnail with context %}

请参阅docthis question