gpt4 book ai didi

python - request.session.flash() 和 .pop_flash()

转载 作者:行者123 更新时间:2023-12-01 06:04:44 26 4
gpt4 key购买 nike

每当我发布表单时,都会显示错误消息。但是,根据我将闪存添加到队列的方式,有些消息在我发布到表单后会保留,而有些则不会。我注意到这是由于我向队列添加消息的方式造成的。

完美运行的常规方式:

post_data = request.POST
if 'submit' in post_data:
... function(post_data) ...
if ...:
request.session.flash(u'This is some error message')
request.session.flash(u'Maybe some other error message')

在 mako 文件中:

<html>...<body>...
% for m in request.session.pop_flash():
<div class="alert-message">
<p>${m}</p>
</div>
% endfor
...</body></html>

但是,我希望某些消息的工作方式是:

if 'submit' in post_data: 
messages = function(...) # output is always a list
for m in messages:
request.session.flash(m)

当我这样做时,每次我重新发布到同一个表单时,所有以前的消息都会再次添加到 .flash() 中。因此,错误消息不断堆积。我该如何解决这个问题或解决这个问题?

最佳答案

我找到了问题所在,但不知道为什么会发生。之前,我将 message 作为关键字发起:

@classmethod
def validate(cls, message=[], **kwargs):
if this:
message.append(u'...')
return kwargs, message

我相信在每次发布后,消息都没有清除,即使我从未使用它调用validate()。但是,当我删除 messsage 作为关键字时,它工作正常:

@classmethod
def validate(cls, **kwargs):
message = []
...

有谁知道为什么会这样吗?

关于python - request.session.flash() 和 .pop_flash(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8723340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com