Django 消息 - 在添加之前检查消息是否已经存在
Django messages - check if a message already exists before adding
是否可以在添加另一条消息之前检查 django 消息和内容是否存在?
在我的示例中,我在循环中执行 try
- except
,如果发生异常,我会添加一条消息,但我只希望消息出现一次,而不是每次出现循环中的项目:
for i in data:
# do something...
try:
# try to act upon something
except:
# failed action add a message
if not messages.?.contains("Error: Unable to perform action X")
messages.add_message(request, messages.ERROR, 'Error: Unable to perform action X')
pass
您正在寻找 messages.get_messages(request)
方法。
要获取所有消息的列表,请将该方法调用包装在 list
构造函数中:
all_messages = list(messages.get_messages(request))
每个消息对象都有关于其级别、消息本身等的信息。您可以使用这些字段来检查您正在搜索的消息是否已经存在。
简单片段:
all_error_messages_content = [msg.message for msg in list(messages.get_messages(request)) if msg.level_tag == 'error']
if 'Error: Unable to perform action X' not in all_error_messages_content:
messages.add_message(request, messages.ERROR, 'Error: Unable to perform action X')
是否可以在添加另一条消息之前检查 django 消息和内容是否存在?
在我的示例中,我在循环中执行 try
- except
,如果发生异常,我会添加一条消息,但我只希望消息出现一次,而不是每次出现循环中的项目:
for i in data:
# do something...
try:
# try to act upon something
except:
# failed action add a message
if not messages.?.contains("Error: Unable to perform action X")
messages.add_message(request, messages.ERROR, 'Error: Unable to perform action X')
pass
您正在寻找 messages.get_messages(request)
方法。
要获取所有消息的列表,请将该方法调用包装在 list
构造函数中:
all_messages = list(messages.get_messages(request))
每个消息对象都有关于其级别、消息本身等的信息。您可以使用这些字段来检查您正在搜索的消息是否已经存在。
简单片段:
all_error_messages_content = [msg.message for msg in list(messages.get_messages(request)) if msg.level_tag == 'error']
if 'Error: Unable to perform action X' not in all_error_messages_content:
messages.add_message(request, messages.ERROR, 'Error: Unable to perform action X')