def csv_to_modelattr(open_file, name_cleaner=None, company=gl_helpers.get_default_company()): '''takes the fields and values in the CSV and transforms them into a list of dicts where the keys will match model attributes. for example Full Description becomes full_description''' if name_cleaner == None: name_cleaner = lambda name: name f_csv = csv.DictReader(open_file) csv_to_modelattr = dict([(name, name_cleaner(name)) for name in f_csv.fieldnames]) csv_to_modelattr['company_id'] = company return [dict([(csv_to_modelattr[name], value) for name, value in row.items() if name in csv_to_modelattr]) for row in f_csv]
def create_instance(row, model, name_cleaner=None, value_cleaner=None, unique=None, exclude=[], company=gl_helpers.get_default_company()): row['company'] = company non_rel_instance = instance_nonrel_data(row, model, name_cleaner=name_cleaner, value_cleaner=value_cleaner) if non_rel_instance.id in exclude: return None full_instance = set_foreignkeys(non_rel_instance, row, model, name_cleaner=name_cleaner, value_cleaner=value_cleaner) return unique(full_instance)