django-import-export 外部管理员
django-import-export outside admin
我正在尝试使用 django-import-export 实现一个简单的 xls 文件导入并保存到模型。
不幸的是,文档仅涵盖管理集成。
我被困在我的示例代码中:
class UploadFileForm(forms.Form):
file = forms.FileField()
class ExportSpec(resources.ModelResource):
class Meta:
model = Specialty
view:
def ca_import(request):
if request.method == 'POST' and 'import_test' in request.POST:
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
filehandle = request.FILES['file']
dataset = ???
result = ExportSpec().import_data(dataset, dry_run=False,
raise_errors=True,
user=request.user)
了解这个模块的人可以帮我完成这个通用示例的代码吗?
或者是否有一个通用示例在网络上的某处被剪断,但我没有使用 google 找到?
编辑:
根据 Alex 的回答,我找到了可行的解决方案:
def ca_import(request):
if request.method == 'POST' and 'import_test' in request.POST:
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
file = form.cleaned_data['file']
data = bytes()
for chunk in file.chunks():
data += chunk
dataset = XLS().create_dataset(data)
result = ExportSpec().import_data(dataset, dry_run=False, raise_errors=True, user=request.user)
您应该使用 Format.create_dataset()
方法:
from import_export.formats.base_formats import XLS
def your_view():
filehandle = form.cleaned_data['file']
data = bytes()
for chunk in import_file.chunks():
data += chunk
dataset = XLS().create_dataset(data)
result = ExportSpec().import_data(...)
我正在尝试使用 django-import-export 实现一个简单的 xls 文件导入并保存到模型。 不幸的是,文档仅涵盖管理集成。 我被困在我的示例代码中:
class UploadFileForm(forms.Form):
file = forms.FileField()
class ExportSpec(resources.ModelResource):
class Meta:
model = Specialty
view:
def ca_import(request):
if request.method == 'POST' and 'import_test' in request.POST:
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
filehandle = request.FILES['file']
dataset = ???
result = ExportSpec().import_data(dataset, dry_run=False,
raise_errors=True,
user=request.user)
了解这个模块的人可以帮我完成这个通用示例的代码吗?
或者是否有一个通用示例在网络上的某处被剪断,但我没有使用 google 找到?
编辑:
根据 Alex 的回答,我找到了可行的解决方案:
def ca_import(request):
if request.method == 'POST' and 'import_test' in request.POST:
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
file = form.cleaned_data['file']
data = bytes()
for chunk in file.chunks():
data += chunk
dataset = XLS().create_dataset(data)
result = ExportSpec().import_data(dataset, dry_run=False, raise_errors=True, user=request.user)
您应该使用 Format.create_dataset()
方法:
from import_export.formats.base_formats import XLS
def your_view():
filehandle = form.cleaned_data['file']
data = bytes()
for chunk in import_file.chunks():
data += chunk
dataset = XLS().create_dataset(data)
result = ExportSpec().import_data(...)