def save(self, force_insert=False, force_update=False, commit=True): zeros = len(self.cleaned_data['start_index']) - 1 model = self.get_model() for n in range(int(self.cleaned_data['start_index']), int(self.cleaned_data['start_index']) + self.cleaned_data['count']): name = (self.cleaned_data.get('prefix', '') + self.get_zeros(n, zeros) + str(n)) service_interval = self.cleaned_data.get('service_interval') tool = Tool(name=name, price=self.cleaned_data.get('price'), model=model, service_interval=service_interval, invoice_number=self.cleaned_data['invoice_number'], secondary_name=self.cleaned_data['secondary_name'], buy_date=self.cleaned_data['buy_date'], container=self.cleaned_data['container'], company=self.company) tool.save()
def save(self): self.csv_file.open() dialect = csv.Sniffer().sniff(self.csv_file.read(1024)) self.csv_file.seek(0) has_header = csv.Sniffer().has_header(self.csv_file.read(1024)) self.csv_file.seek(0) reader = csv.reader(self.csv_file, dialect) if has_header: reader.next() for row in reader: tool = Tool() tool.service_interval = 6 tool.price = 0 tool.company = self.company for i, field in enumerate(row): column_name = self.cleaned_field.get('column_%s' % i) if column_name == 'model': field = self.get_model(field) elif column_name == 'container': if field == '': field = None else: defaults = {'is_active': True, 'company': self.company} field, created = (Container.objects .get_or_create(name=field, defaults=defaults)) elif (column_name == 'buy_date' or column_name == 'end_date' or column_name == 'last_service'): if field == '': field = None else: try: field = parse(field) except ValueError: field = None if column_name != 'none' and field is not None: setattr(tool, column_name, field) try: tool.save() except Exception, err: # if it doesn't work out, just ignore it pass