Python 读取csv文件并用它填充数据库';django应用程序中的s数据
在Django应用程序中,我创建了一个表单,允许用户上传csv文件。 我想要的是当用户上传csv文件时,读取包含的数据并用它们填充数据库。 它工作正常,但不正确。数据保存为元组 这是我的密码 forms.pyPython 读取csv文件并用它填充数据库';django应用程序中的s数据,python,django,Python,Django,在Django应用程序中,我创建了一个表单,允许用户上传csv文件。 我想要的是当用户上传csv文件时,读取包含的数据并用它们填充数据库。 它工作正常,但不正确。数据保存为元组 这是我的密码 forms.py class SupplierCSVForm(forms.ModelForm): class Meta: model = SuplierCsv fields = '__all__' exclude = ('slug',) @logi
class SupplierCSVForm(forms.ModelForm):
class Meta:
model = SuplierCsv
fields = '__all__'
exclude = ('slug',)
@login_required
def l_supplier(request):
suppliers_list = Supplier.objects.all()
paginator = Paginator(suppliers_list, 3, 2)
page = request.GET.get('page')
suppliers = paginator.get_page(page)
# Supplier csv form
if request.method == 'POST':
form = SupplierCSVForm(request.POST, request.FILES)
if form.is_valid():
uploaded_file = request.FILES['csvfile']
with open('f.csv', 'wb') as destination:
for chunk in uploaded_file.chunks():
destination.write(chunk)
destination.close()
#csvfile = io.TextIOWrapper(open('f.csv', 'rb'))
with open('f.csv', 'r') as the_source:
source_reader = csv.reader(sthe_source)
next(source_reader)
for Name, Email, Contact, City, Website, Activity, Cc, slug in source_reader:
new_supplier = Supplier()
new_supplier.name=Name,
new_supplier.email=Email,
new_supplier.contact=Contact,
new_supplier.city=City,
new_supplier.website=Website,
new_supplier.activity=Activity,
new_supplier.cc=Cc,
new_supplier.slug=slug,
new_supplier.save()
return redirect('good:l_good')
else:
form = SupplierCSVForm()
context = {
'suppliers': suppliers,
'form': form,
}
return render(request, 'supplier/l_supplier.html', context)
视图.py
class SupplierCSVForm(forms.ModelForm):
class Meta:
model = SuplierCsv
fields = '__all__'
exclude = ('slug',)
@login_required
def l_supplier(request):
suppliers_list = Supplier.objects.all()
paginator = Paginator(suppliers_list, 3, 2)
page = request.GET.get('page')
suppliers = paginator.get_page(page)
# Supplier csv form
if request.method == 'POST':
form = SupplierCSVForm(request.POST, request.FILES)
if form.is_valid():
uploaded_file = request.FILES['csvfile']
with open('f.csv', 'wb') as destination:
for chunk in uploaded_file.chunks():
destination.write(chunk)
destination.close()
#csvfile = io.TextIOWrapper(open('f.csv', 'rb'))
with open('f.csv', 'r') as the_source:
source_reader = csv.reader(sthe_source)
next(source_reader)
for Name, Email, Contact, City, Website, Activity, Cc, slug in source_reader:
new_supplier = Supplier()
new_supplier.name=Name,
new_supplier.email=Email,
new_supplier.contact=Contact,
new_supplier.city=City,
new_supplier.website=Website,
new_supplier.activity=Activity,
new_supplier.cc=Cc,
new_supplier.slug=slug,
new_supplier.save()
return redirect('good:l_good')
else:
form = SupplierCSVForm()
context = {
'suppliers': suppliers,
'form': form,
}
return render(request, 'supplier/l_supplier.html', context)
在行尾有不必要的逗号:
new_supplier.name=Name,
应该是
new_supplier.name=Name
Python认为您正在创建一个元组
i、 e.x,==(x,)您在行尾有不必要的逗号:
new_supplier.name=Name,
应该是
new_supplier.name=Name
Python认为您正在创建一个元组
i、 e.x,==(x,)删除分配新供应商对象的逗号。如果有任何尾随逗号,Python会将字符串对象转换为元组。删除分配
新对象的逗号。如果有任何尾随逗号,Python会将字符串对象转换为元组