Add option to choose delimiter in CSV import

This commit is contained in:
Jan Tuomi
2017-10-02 20:56:49 +03:00
parent d1343f8b58
commit 5666825738
7 changed files with 47 additions and 12 deletions
+9 -4
View File
@@ -52,16 +52,21 @@ class MemberForm(forms.ModelForm):
return self._clean_boolean_field('AYY')
@staticmethod
def csv_to_models(data, payment_source='AYY'):
def csv_to_models(data, payment_source='AYY', delimiter=','):
clean_data = data.strip().split('\n')
clean_data = [row.rstrip(',') for row in clean_data]
csv_reader = csv.DictReader(clean_data, fieldnames=MemberForm.Meta.fields)
csv_reader = csv.DictReader(clean_data, fieldnames=MemberForm.Meta.fields, delimiter=delimiter, quoting=csv.QUOTE_NONE)
members = []
payments = []
for line in csv_reader:
for key, value in line.items():
line[key] = value.strip()
try:
for key, value in line.items():
line[key] = value.strip()
except AttributeError as ex:
logging.error('Invalid line in CSV: "{}"'.format(line))
logging.error('Delimiter: {}'.format(delimiter))
raise
email = line['email']
member_exists = False