I'm using django-excel to do this function.
This is my view.py
def import_data(request):
if request.method == "POST":
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
request.FILES['file'].save_book_to_database(
models=['contoh_upload'],
initializers=[None,0],
mapdicts=['id','nama','kelas']
)
message = "your upload has been uploaded "
return render(request, 'kastransaksi/transaksi_formupload.html', {'message': message})
else:
message = "Failed Upluad data"
return render(request, 'kastransaksi/transaksi_formupload.html', {'form': form, 'message': message})
else:
form = UploadFileForm()
return render(request, 'kastransaksi/transaksi_formupload.html', {'form': form})
this is my models.py
class contoh_upload(models.Model):
nama = models.CharField(max_length=10, null=True, blank=True)
kelas = models.CharField(max_length=10, null=True, blank=True)
and this is my template.html
<div class="alert-success">{{ message }}</div>
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
<!-- <input type="file" name="excel_file"> -->
{{ form }}
<input type="submit" name="input_button" value="UPLOAD" class="btn btn-primary">
</form>
but I get this error:
Traceback:
File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\core\handlers\exception.py" in inner 39. response = get_response(request)
File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\core\handlers\base.py" in _legacy_get_response 249. response = self._get_response(request)
File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\core\handlers\base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request)
File "C:\Python27\lib\site-packages\django-1.10.4-py2.7.egg\django\core\handlers\base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Lenovo\OneDrive\siswa\transaksi_kas\views.py" in import_data 165. models=[(contoh_upload, ['nama', 'kelas'], None, 0)],
File "C:\Python27\lib\site-packages\django_excel__init__.py" in save_book_to_database 61. pe.save_book_as(**params)
File "C:\Python27\lib\site-packages\pyexcel\core.py" in save_book_as 224. return sources.save_book(book, **dest_keywords)
File "C:\Python27\lib\site-packages\pyexcel\sources__init__.py" in save_book 46. return _save_any(source, book)
File "C:\Python27\lib\site-packages\pyexcel\sources__init__.py" in _save_any 50. source.write_data(instance)
File "C:\Python27\lib\site-packages\pyexcel\sources\database.py" in write_data 248. sheet.name_columns_by_row(0)
File "C:\Python27\lib\site-packages\pyexcel\sheets\sheet.py" in name_columns_by_row 140. self.__column_names = make_names_unique(self.row_at(row_index))
File "C:\Python27\lib\site-packages\pyexcel\sheets\matrix.py" in row_at 162. raise IndexError(constants.MESSAGE_INDEX_OUT_OF_RANGE)
Exception Type: IndexError at /transaksi/import_form/ Exception Value: Index out of range