python - Django template filter not registered after django dev server restart -


i spent time trying deal problem on own, maybe here able me. building larger django app removed except code highlights problem.

i define 2 custom template tags:

edb/templatetags/edb_extra.py:

register = template.library()  @register.inclusion_tag('edb/templatetags/event_tile.html') def render_event_tile(event):     return {'event':event}  @template.defaulttags.register.filter def get_item(dictionary, key):     return dictionary.get(key) 

with linked html edb/templatetags/event_tile.html:

<div>     <h5> render: {{ event.name }} </h5> </div> 

i serve request through edb/views.py:

@login_required def my_view(request):     events = event.objects.all()     myevent = events[0]     sorted_events = {'mykey': myevent}     return render(request, "edb/using_tags.html", {'sorted_events':sorted_events, 'event':myevent}) 

and edb/using_tags.html:

{% load edb_extra %}  <!doctype html>     <head>         <meta charset="utf-8">     </head>     <body>         <div class="main-panel">             {% render_event_tile event %}             {{ sorted_events|get_item:'mykey' }}         </div>     </body> </html> 

this code produces following error message when processed first time after django dev server restarted:

templatesyntaxerror @ en/edb/using_tags invalid filter: 'get_item' 

when hit browser button , repeat request works fine. works fine subsequent requests until server needs restarted (e.g. change view code).

furthermore, if remove {{ sorted_events|get_item:'mykey' }}, works fine beginning seems edb_extra.py being correctly processed on time. somehow inclusion_tag being registered while filter not.

try use register template library in decorator:

@register.filter def get_item(dictionary, key):     return dictionary.get(key) 

Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

Swift game error message -