Как импортировать файл Excel в таблицу в Джанго ⇐ Python
-
Anonymous
Как импортировать файл Excel в таблицу в Джанго
У меня есть эта модель для хранения информации о компьютерах. Я пытаюсь добавить функцию для импорта файла Excel, содержащего данные, напрямую, вместо ввода данных в таблицу, если данных для ввода много.
models.py
класс Продукт(модели.Модель): model=models.CharField(max_length=50, null=True) серийный = модели.CharField (max_length = 50, ноль = True) hd_size=models.CharField(max_length=50,null=True) ram=models.CharField(max_length=50, null=True) процессор = модели.CharField (max_length = 50, ноль = True) date_created = models.DateTimeField(default=timezone.now) date_updated = models.DateTimeField(auto_now=True) защита __str__(сам): вернуть self.serial + '- ' + self.model Views.py
@login_required защита product_mgt (запрос): context['page_title'] = "Список компьютеров" продукты = Product.objects.all() контекст['продукты'] = продукты вернуть рендеринг (запрос, 'product_mgt.html', контекст) Forms.py
класс SaveProduct(forms.ModelForm): модель = form.CharField(max_length=50,) серийный номер = form.CharField(max_length=50, ) hd_size= form.CharField(max_length=50, ) ram= form.CharField(max_length=50, ) процессор = form.CharField(max_length=50, ) класс Мета: модель = Продукт поля = («модель», «серийный», «hd_size», «оперативная память», «процессор») защита clean_serial(self): id = self.instance.id, если self.instance.id иначе 0 серийный номер = self.cleaned_data['serial'] пытаться: если int(id) > 0: продукт = Product.objects.exclude(id=id).get(serial = серийный) еще: продукт = Product.objects.get(серийный = серийный) кроме: вернуть серийный номер поднять формы.ValidationError(f"Компьютер {serial} уже существует.")
У меня есть эта модель для хранения информации о компьютерах. Я пытаюсь добавить функцию для импорта файла Excel, содержащего данные, напрямую, вместо ввода данных в таблицу, если данных для ввода много.
models.py
класс Продукт(модели.Модель): model=models.CharField(max_length=50, null=True) серийный = модели.CharField (max_length = 50, ноль = True) hd_size=models.CharField(max_length=50,null=True) ram=models.CharField(max_length=50, null=True) процессор = модели.CharField (max_length = 50, ноль = True) date_created = models.DateTimeField(default=timezone.now) date_updated = models.DateTimeField(auto_now=True) защита __str__(сам): вернуть self.serial + '- ' + self.model Views.py
@login_required защита product_mgt (запрос): context['page_title'] = "Список компьютеров" продукты = Product.objects.all() контекст['продукты'] = продукты вернуть рендеринг (запрос, 'product_mgt.html', контекст) Forms.py
класс SaveProduct(forms.ModelForm): модель = form.CharField(max_length=50,) серийный номер = form.CharField(max_length=50, ) hd_size= form.CharField(max_length=50, ) ram= form.CharField(max_length=50, ) процессор = form.CharField(max_length=50, ) класс Мета: модель = Продукт поля = («модель», «серийный», «hd_size», «оперативная память», «процессор») защита clean_serial(self): id = self.instance.id, если self.instance.id иначе 0 серийный номер = self.cleaned_data['serial'] пытаться: если int(id) > 0: продукт = Product.objects.exclude(id=id).get(serial = серийный) еще: продукт = Product.objects.get(серийный = серийный) кроме: вернуть серийный номер поднять формы.ValidationError(f"Компьютер {serial} уже существует.")
Мобильная версия