浏览代码

Fixed csv reader to handle special characters

Stian Vikan 9 年之前
父节点
当前提交
0708942ab8
共有 1 个文件被更改,包括 6 次插入1 次删除
  1. 6 1
      netbox/utilities/forms.py

+ 6 - 1
netbox/utilities/forms.py

@@ -142,10 +142,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):