File tree Expand file tree Collapse file tree 3 files changed +20
-4
lines changed
src/django_simple_nav/jinja2 Expand file tree Collapse file tree 3 files changed +20
-4
lines changed Original file line number Diff line number Diff line change @@ -29,8 +29,12 @@ def django_simple_nav(
2929 template_name = cast (Nav , nav ).template_name
3030 if template_name is None :
3131 raise TemplateRuntimeError ("Navigation object has no template" )
32- items = cast (Nav , nav ).get_items (context ["request" ])
32+ request = context ['request' ]
33+ new_context = {
34+ 'request' : request ,
35+ ** cast (Nav , nav ).get_context_data (request )
36+ }
3337 except Exception as err :
3438 raise TemplateRuntimeError (str (err )) from err
3539
36- return loader .load (context .environment , template_name ).render (items = items )
40+ return loader .load (context .environment , template_name ).render (new_context )
Original file line number Diff line number Diff line change 22 {% for item in items recursive %}
33 < li >
44 < a href ="{{ item.url }} "> {{ item.title }}</ a >
5- {% if item. items %}
5+ {% if item[' items'] %}
66 < ul >
7- {{ loop(item. items) }}
7+ {{ loop(item[' items'] ) }}
88 </ ul >
99 {% endif %}
1010 </ li >
Original file line number Diff line number Diff line change @@ -131,3 +131,15 @@ def test_request_not_in_context():
131131
132132 with pytest .raises (TemplateRuntimeError ):
133133 template .render ()
134+
135+
136+ def test_invalid_request ():
137+ class InvalidRequest :
138+ ...
139+
140+ template = environment .from_string (
141+ "{{ django_simple_nav('tests.navs.DummyNav') }}"
142+ )
143+
144+ with pytest .raises (TemplateRuntimeError ):
145+ template .render ({"request" : InvalidRequest ()})
You can’t perform that action at this time.
0 commit comments