我正在尝试使用Django的import-export上传数据。导出工作正常,但是即使导入功能通过默认的管理仪表板也可以正常工作,但我无法从前端进行导入。有人想要帮助吗?
views.py:
def data_upload(request):
if request.method == 'POST':
country_resource = CountryResource()
dataset = Dataset()
new_countries = request.FILES['datafile']
imported_data = dataset.load(new_countries.read())
result = country_resource.import_data(dataset, dry_run=True)
if not result.has_errors():
country_resource.import_data(dataset, dry_run=False)
return render(request, 'chainedModels/setup.html')
形成:
{% block content %}
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="datafile">
<button type="submit">Upload</button>
</form>
{% endblock %}
PS:我还注意到在视图中“ imported_data”显示为灰色。当我将其悬停时,显示一条弹出消息“未使用本地变量'imported_data'”
编辑:
对于像我这样的新手,他们将来可能会遇到类似的问题,这就是我的解决方法。
我在forms.py中创建了一个表单来处理文件上传,然后在views.py中执行了以下操作
def ...(request):
if request.method == 'POST':
dataform = CountryUploadForm(request.POST, request.FILES)
if dataform.is_valid():
country_resource = CountryResource()
dataset = Dataset()
file = dataform.cleaned_data['file']
import_data = dataset.load(file.read())
result = country_resource.import_data(dataset, dry_run=False)
messages.success(request, 'Data upload was successful')
return redirect('...')
else:
messages.error(request, 'Data upload error. Please choose a file')
return redirect('...')
return render(request, '...')
我觉得你有错字?代码错误消息实际上是显式且正确的,您未使用imported_data
。这不imported_data
应该用来初始化您的Dataset
对象吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句