Parcourir la source

Merge pull request #493 from stianvi/csv_reader_unicode

Fixed csv reader to handle special characters
Jeremy Stretch il y a 8 ans
Parent
commit
2c7c0ce29d
1 fichiers modifiés avec 6 ajouts et 1 suppressions
  1. 6 1
      netbox/utilities/forms.py

+ 6 - 1
netbox/utilities/forms.py

@@ -167,10 +167,15 @@ class CSVDataField(forms.CharField):
         if not self.help_text:
         if not self.help_text:
             self.help_text = 'Enter one line per record in CSV format.'
             self.help_text = 'Enter one line per record in CSV format.'
 
 
+    def utf_8_encoder(self, unicode_csv_data):
+        # convert csv,reader to utf-8e
+        for line in unicode_csv_data:
+            yield line.encode('utf-8')
+
     def to_python(self, value):
     def to_python(self, value):
         # Return a list of dictionaries, each representing an individual record
         # Return a list of dictionaries, each representing an individual record
         records = []
         records = []
-        reader = csv.reader(value.splitlines())
+        reader = csv.reader(self.utf_8_encoder(value.splitlines()))
         for i, row in enumerate(reader, start=1):
         for i, row in enumerate(reader, start=1):
             if row:
             if row:
                 if len(row) < len(self.columns):
                 if len(row) < len(self.columns):