Add option to choose delimiter in CSV import
This commit is contained in:
+9
-4
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user