2013-08-23 62 views
1

所以我寫的控制器:瓶閃光燈功能無視「類別」的說法

@app.route('/') 
def index(): 
    flash('Hello world!', 'success') 
    return render_template('index.html') 

然後在我的模板我輸出的提示信息是這樣的:

{%- with messages = get_flashed_messages(with_categories=true) -%} 
{%- if messages -%} 
    <ul class="flashes unstyled"> 
    {%- for category, message in messages -%} 
     <li class="alert alert-{{ category }}"> 
      <a class="close" data-dismiss="alert">&times;</a> 
      {{ message }} 
     </li> 
    {%- endfor -%} 
    </ul> 
{%- endif -%} 
{%- endwith %} 

但問題是,我總是得到'消息'類別,因此<li>'alert alert-message'
我閱讀文檔,併爲我,我做的一切都是對的,但'flash'功能忽略了第二個參數,並始終使用默認值'message'(而不是由我給「成功」)。

我不知道是否有人有這個問題,並知道如何處理它?

+0

您正在使用什麼版本的瓶?對我而言,0.10似乎很好。 –

回答

2

編輯:根據其他評論和測試kwarg是不必要的。

根據在http://flask.pocoo.org/docs/api/#message-flashing看來你需要使用這種格式的文檔。 flash(message, category='message')

@app.route('/') 
def index(): 
    flash('Hello world!', category='success') 
    return render_template('index.html') 
+2

你不需要提供一個kwarg。我以'flash'('message','category')'的形式使用它,它工作正常。 –

+0

是的,你不必通過鍵=值對(儘管你可以)。 而且我想,已經......沒有結果:( –

+0

@Joe你說得很對,我只是測試它,以及在瓶0.10.1,它工作正常。 – Seberius

1

當你調用get_flashed_messages(with_categories=True),它在形式(category, message)返回一個元組列表。

所以,現在你可以使用flash()這樣的:

flash('some message', 'success') # `category=` is needn't 

在HTML中,你可以循環呼叫消息:

{% for message in get_flashed_messages(with_categories=True) %} 
<div class="alert alert-{{ message[0] }}"> 
    <button type="button" class="close" data-dismiss="alert">&times;</button> 
    {{ message[1] }} 
</div> 
{% endfor %} 
+0

This是正確的答案,謝謝 – Jacquot