Ich benutze Modul zum Erstellen von Flush-Nachrichten. Diese Nachrichten können in verschiedenen Blöcken auf der Seite angezeigt werden, hängt davon ab, zusätzlichen tag:Überschreiben Modul-Methode auf Django Start
messages.error(request, 'Error message', extra_tags='form')
I Standard-Tag mit dem Namen ‚global‘ und ich brauche es in neuer Nachricht hinzufügen, wenn keine extra_tags gesetzt. Also schrieb ich Middleware django.contrib.messages.add_message()
Verfahren beim Programmstart zu wickeln:
class Initialization:
def __init__(self):
self.init_messages()
raise MiddlewareNotUsed
def init_messages(self):
add_message_method = messages.add_message
def add_message_wrapper(request, level, message, extra_tags='', fail_silently=False):
if not extra_tags:
extra_tags = 'global'
add_message_method(request, level, message, extra_tags, fail_silently)
messages.add_message = add_message_wrapper
Ich sehe, dass init_messages()
Methode aufgerufen wird, aber wenn ich django.contrib.messages.add_message()
nenne, ist es nicht mit add_message_wrapper()
gewickelt.
Wo ist mein Fehler?
Haben Sie rufen 'messages.add_message()' oder 'messages.error:() '. – okm