File tree Expand file tree Collapse file tree 2 files changed +14
-1
lines changed Expand file tree Collapse file tree 2 files changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ class CSVRenderer(BaseRenderer):
1212 media_type = 'text/csv'
1313 format = 'csv'
1414 level_sep = '.'
15+ headers = None
1516
1617 def render (self , data , media_type = None , renderer_context = None ):
1718 """
@@ -43,6 +44,7 @@ def tablize(self, data):
4344 # each item designates the name of the column that the item will
4445 # fall into.
4546 data = self .flatten_data (data )
47+ data .header = data .header or self .headers
4648
4749 # Get the set of all unique headers, and sort them (unless already provided).
4850 if not data .header :
@@ -127,4 +129,4 @@ def flatten_dict(self, d):
127129
128130
129131class CSVRendererWithUnderscores (CSVRenderer ):
130- level_sep = '_'
132+ level_sep = '_'
Original file line number Diff line number Diff line change @@ -77,6 +77,17 @@ def test_render_ordered_rows(self):
7777 dump = renderer .render (data )
7878 self .assertEqual (dump , csv_file ) # field order should be maintained
7979
80+ def test_render_subset_of_fields (self ):
81+ renderer = CSVRenderer ()
82+ renderer .headers = ['a' , 'c.x' ]
83+
84+ data = [{'a' : 1 , 'b' : 2 },
85+ {'b' : 3 , 'c' : {'x' : 4 , 'y' : 5 }}]
86+ dump = renderer .render (data )
87+ self .assertEqual (dump , 'a,c.x\r \n '
88+ '1,\r \n ,'
89+ '4\r \n ' )
90+
8091
8192class TestCSVParser (TestCase ):
8293
You can’t perform that action at this time.
0 commit comments