我有这个模型来存储有关计算机的信息。我试图添加一个功能,直接导入包含数据的Excel文件,而不是在表格中输入数据,以防有大量的数据输入。
models.py
class Product(models.Model):
model=models.CharField(max_length=50, null=True)
serial=models.CharField(max_length=50, null=True)
hd_size=models.CharField(max_length=50,null=True)
ram=models.CharField(max_length=50, null=True)
processor=models.CharField(max_length=50, null=True)
date_created = models.DateTimeField(default=timezone.now)
date_updated = models.DateTimeField(auto_now=True)
def __str__(self):
return self.serial + ' - ' + self.model
字符串
Views.py
@login_required
def product_mgt(request):
context['page_title'] = "Computer List"
products = Product.objects.all()
context['products'] = products
return render(request, 'product_mgt.html', context)
型
Forms.py
class SaveProduct(forms.ModelForm):
model= forms.CharField(max_length=50,)
serial= forms.CharField(max_length=50, )
hd_size= forms.CharField(max_length=50, )
ram= forms.CharField(max_length=50, )
processor= forms.CharField(max_length=50, )
class Meta:
model = Product
fields = ('model','serial','hd_size','ram', 'processor')
def clean_serial(self):
id = self.instance.id if self.instance.id else 0
serial = self.cleaned_data['serial']
try:
if int(id) > 0:
product = Product.objects.exclude(id=id).get(serial = serial)
else:
product = Product.objects.get(serial = serial)
except:
return serial
raise forms.ValidationError(f"{serial} Computer Already Exists.")
型
2条答案
按热度按时间5f0d552i1#
您可以使用Django import / export库来实现您的目标。此外,您可以轻松地将模型导出到excel。
ncecgwcz2#
要在Django中使用
django-import-export
库从Excel文件导入数据,您可以按照以下步骤操作:1.安装
django-import-export
库pip install django-import-export
1.将
'import_export'
添加到Django项目的settings.py
的INSTALLED_APPS
列表中:1.创建一个资源类,定义如何使用
django-import-export
为模型导入/导出数据字符串
1.为你的模型创建一个Django管理类,并使用
ProductResource
导入/导出:型
1.现在,您应该能够使用Django管理界面以Excel格式导入/导出模型的数据。
请记住在对模型进行更改后运行
python manage.py makemigrations
和python manage.py migrate
。现在,当你访问模型的Django管理界面时,你应该看到允许你处理Excel文件的导入/导出选项。