【问题标题】:Python Flask-admin: flash is not working with MarkupPython Flask-admin:flash 不适用于标记
【发布时间】:2019-03-29 14:40:26
【问题描述】:

在一个特定的 flash 消息中,我需要使用 Flask-admin 中的 HTML 代码。它是安全的,因为它是我自己的信息。我将发布重要的代码。我在使用flask_admin.contrib.sqla.ModelView下面的代码sn-p是不可解释的,它只是一段重要的代码,但是你可以在自己的app中轻松测试。请不要问我为什么需要做这样的事情,我在问,因为我尝试了几件事,但没有任何效果。唯一有效的是更改flask-admin macromessages() 并添加safe 过滤器,但这是我不想在flask-admin 中做的事情。有什么想法吗?

# override
def on_model_change(self, form, model, is_created):
    if something_is_wrong():
        raise CustomException(
            'Something in the <b>entity</b> was wrong. Please check: ' +
            '<ul><li><a href="#">this</a></li><li><a href="#">and this</a></li></ul>'
        )

# override
def update_model(self, form, model):
    try:
        return super(CustomView, self).update_model(form, model)
    except CustomException, ce:
        self.session.rollback()
        flash(Markup(ce.message), category='error')

        return False

【问题讨论】:

    标签: python flask flask-admin


    【解决方案1】:

    覆盖呈现 Flash 消息的模板并将其放置在适当的位置

    {{message|safe}}
    

    【讨论】:

    • 嗨,是的,就像我说的那样,它的工作方式符合我的预期。但早些时候我没有注意到闪存消息位于名为messages 的块中。在您回答之后,我再次对其进行了探索,最后我在基本模板中找到了 messages 块。所以我在我需要的一个模板中覆盖了它,它工作正常。谢谢。
    猜你喜欢
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 2017-09-07
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    相关资源
    最近更新 更多