  class FormParser(BaseParser):
      """The default parser for form data.
      Return a dict containing a single value for each non-reserved parameter.
      """
      # TODO: not good, because posted/put lists are flattened !!!
      media_type = 'application/x-www-form-urlencoded'
  
      def parse(self, input):
          request = self.resource.request
  
 
</s> remove 
class FormParser(BaseParser):
 </s> add class DataFlatener(object):

    def flatten_data(self, data):
        """Given a data dictionary ``{<attr_name>: <value_list>}``, returns a flattened dictionary according to :meth:`FormParser.is_a_list`.
        """
        #TODO : document + test
        flatdata = dict()
        for attr_name, attr_value in data.items():
            if self.is_a_list(attr_name):
                if isinstance(attr_value, list):
                    flatdata[attr_name] = attr_value
                else:
                    flatdata[attr_name] = [attr_value]
            else:
                if isinstance(attr_value, list):
                    flatdata[attr_name] = attr_value[0]
                else:
                    flatdata[attr_name] = attr_value 
        return flatdata

    def is_a_list(self, attr_name):
        """ """
        #TODO: document
        return False

class FormParser(BaseParser, DataFlatener): </s> remove class MultipartParser(FormParser):
 </s> add class MultipartParser(BaseParser, DataFlatener): </s> remove             # Flattening the parsed query data
            for key, val in data.items():
                data[key] = val[0]
 </s> add  </s> remove             data = dict(request.POST)
            files = dict(request.FILES)

        # Flattening, then merging the POSTED/PUT data/files
        for key, val in dict(data).items():
            data[key] = val[0]
        for key, val in dict(files).items():
            files[key] = val[0].read()
 </s> add             data = request.POST
            files = request.FILES

        data = self.flatten_data(data)
        files = self.flatten_data(files) </s> remove             data = dict(request.POST.items())
 </s> add             data = request.POST

        data = self.flatten_data(data)
    # TODO: writing tests for PUT files + normal data
  class FormParser(BaseParser):
      """The default parser for form data.
      Return a dict containing a single value for each non-reserved parameter.
      """
    # TODO: writing tests for PUT files + normal data
      media_type = 'application/x-www-form-urlencoded'
  
      def parse(self, input):
          request = self.resource.request
  
keep keep keep keep replace keep keep keep keep keep
 forms and multipat parsers now flaten data 
djangorestframework/parsers.py