Skip to content

Commit a962a79

Browse files
committed
Merge pull request #8 from helenst/item_tag_name
Allow list-item tag name to be customised
2 parents 8def8d9 + 9cc5ca0 commit a962a79

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

rest_framework_xml/renderers.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class XMLRenderer(BaseRenderer):
1818
media_type = 'application/xml'
1919
format = 'xml'
2020
charset = 'utf-8'
21+
item_tag_name = 'list-item'
2122

2223
def render(self, data, accepted_media_type=None, renderer_context=None):
2324
"""
@@ -41,9 +42,9 @@ def render(self, data, accepted_media_type=None, renderer_context=None):
4142
def _to_xml(self, xml, data):
4243
if isinstance(data, (list, tuple)):
4344
for item in data:
44-
xml.startElement("list-item", {})
45+
xml.startElement(self.item_tag_name, {})
4546
self._to_xml(xml, item)
46-
xml.endElement("list-item")
47+
xml.endElement(self.item_tag_name)
4748

4849
elif isinstance(data, dict):
4950
for key, value in six.iteritems(data):

tests/test_renderers.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,12 @@ def test_render_complex_data(self):
9191
self.assertXMLContains(content, '<sub_name>first</sub_name>')
9292
self.assertXMLContains(content, '<sub_name>second</sub_name>')
9393

94+
def test_render_list(self):
95+
renderer = XMLRenderer()
96+
content = renderer.render(self._complex_data, 'application/xml')
97+
self.assertXMLContains(content, '<sub_data_list><list-item>')
98+
self.assertXMLContains(content, '</list-item></sub_data_list>')
99+
94100
@unittest.skipUnless(etree, 'defusedxml not installed')
95101
def test_render_and_parse_complex_data(self):
96102
"""

0 commit comments

Comments
 (0)