code: def get_fields_dict(self, row):
          
          return {k: getattr(self, 'clean_{}'.format(k), lambda x: x)(v.strip() if isinstance(v, str)
                                                                      else None)
                  for k, v in zip_longest(self.get_fields(), row)}
docs: Returns a dict of field name and cleaned value pairs to initialize the model.
          Beware, it aligns the lists of fields and row values with Nones to allow for adding fields not found in the CSV.
          Whitespace around the value of the cell is stripped.