excel中2000多行只添加了一行,同时上传到django admin
Posted
技术标签:
【中文标题】excel中2000多行只添加了一行,同时上传到django admin【英文标题】:Only one row is added from 2000+ rows in excel, while uploading it into django admin 【发布时间】:2021-08-03 16:05:43 【问题描述】:我的 excel 文件中有大约 2000 多行,在上传选定的文件时,它只显示添加到 Django 管理员的最后一行。如何解决?
这是我的 import.html(HTML 文件)
% extends 'base.html' %
% block content %
<form method="post" enctype="multipart/form-data">
% csrf_token %
<input type="file" name="myfile">
<button type="submit">Upload</button>
</form>
% endblock %
views.py
def simple_upload(request):
if request.method == 'POST':
product_resource = ProductResource()
dataset = Dataset()
new_product = request.FILES['myfile']
if not new_product.name.endswith('xlsx'):
messages.info(request,'Wrong Format')
return render(request, 'Upload.html')
imported_data = dataset.load(new_product.read(),format='xlsx')
for data in imported_data:
value = Product(
data[0],
data[1],
data[2],
data[3],
data[4],
data[5],
data[6]
)
value.save()
return render(request,'import.html')
resources.py
from import_export import resources
from .models import Product
class ProductResource(resources.ModelResource):
class Meta:
model = Product
admin.py
admin.site.register(Product)
class PersonAdmin(ImportExportModelAdmin):
pass
urls.py
urlpatterns = [
path('',views.simple_upload),
]
【问题讨论】:
【参考方案1】:保存在循环之外,所以它只会保存一次,它将是循环中的最后一项,试试:
for data in imported_data:
value = Product(
data[0],
data[1],
data[2],
data[3],
data[4],
data[5],
data[6]
)
value.save()
【讨论】:
非常感谢@sirwill98以上是关于excel中2000多行只添加了一行,同时上传到django admin的主要内容,如果未能解决你的问题,请参考以下文章