Ich versuche, einen eigene Template-Tag zu verwenden, und es gibt mir diese Fehlermeldung, wenn ich versuche, eine gerenderte Seite zu erhalten:Django eigene Template-Tag einen Fehler werfen
Invalid block tag on line 29: 'get_message_print_tag', expected 'empty' or 'endfor'. Did you forget to register or load this tag?
Ich versuche, ein zu bekommen Einfacher Titel für meine Flash-Nachrichten basierend auf {{message.tags}}
und in meiner Vorlage fett machen. Wo mache ich einen Fehler?
apptags.py:
from django import template
register = template.Library()
def get_message_print_tag(value):
'''return a string for a message tag depending on the
message tag that can be displayed bold on the flash message'''
if 'danger' in value.lower():
return 'ERROR'
elif 'success' in value.lower():
return 'SUCCESS'
else:
return 'NOTE'
html:
{% load apptags %}
<div class="bootstrap-iso">
{% if messages %}
<div class="messages ">
{% for message in messages %}
<div {% if message.tags %} class="alert {{ message.tags }} alert-dismissible" role="alert" {% endif %}>
{% if message.level == DEFAULT_MESSAGE_LEVELS.ERROR %}Error: {% endif %}
<strong> {% get_message_print_tag {{message.tags}} %} </strong>
{{ message }}
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
</div>
{% endfor %}
</div>
{% endif %}
</div>
Ich habe dies versucht, und ich bin immer noch die gleichen Fehler – Ibo
Selbst wenn ich 'ersetzen {{message.tags }} 'mit' 'Erfolg'' es wirft den gleichen Fehler, was bedeutet, was Sie erwähnt, ist nicht das Problem – Ibo
, was Sie zeigten, war ein Problem auch, aber ich erkannte es nach der Lösung des ersten Problems! – Ibo