I'm working on django-import-export library for importing & exporting xls format, Everything working probably at AdminModel,Now I'm trying to make importing working with views.py & templates but for some reasons didn't work with me
views.py
def simple_upload(request):
if request.method == 'POST':
person_resource = resources.SimsResource()
dataset = Dataset()
new_persons = request.FILES['myfile']
imported_data = dataset.load(new_persons.read())
result = person_resource.import_data(dataset, dry_run=True) # Test the data import
if not result.has_errors():
person_resource.import_data(dataset, dry_run=False) # Actually import now
return render(request, 'import_sims.html', {'errors': result.has_errors(), 'result': result})
return render(request, 'import_sims.html')
resources.py
class SimsResource(resources.ModelResource):
class Meta:
model = models.Sim
fields = ['s_serial_number', 's_number', 's_provider', 'status']
import_id_fields = ['id']
forms.py
class UploadFileForm(forms.Form):
file = forms.FileField()
url.py
url(r'^importing_sims/$', views.simple_upload, name='Import'),
import_sims.html
{% if errors %}
errors:
{{ errors }}
<br><br><br>
resluts :
{{ result }}
{% endif %}
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="myfile">
<button type="submit">Upload</button>
</form>
and error output :
errors: True
resluts : <import_export.results.Result object at 0x1072b75f8>
more information :
ERROR:root:'id'
Traceback (most recent call last):
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 453, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 267, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 261, in get_instance
return instance_loader.get_instance(row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/instance_loaders.py", line 31, in get_instance
field = self.resource.fields[key]
KeyError: 'id'
ERROR:root:'id'
Traceback (most recent call last):
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 453, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 267, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 261, in get_instance
return instance_loader.get_instance(row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/instance_loaders.py", line 31, in get_instance
field = self.resource.fields[key]
KeyError: 'id'
ERROR:root:'id'
Traceback (most recent call last):
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 453, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 267, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 261, in get_instance
return instance_loader.get_instance(row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/instance_loaders.py", line 31, in get_instance
field = self.resource.fields[key]
KeyError: 'id'
ERROR:root:'id'
Traceback (most recent call last):
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 453, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 267, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 261, in get_instance
return instance_loader.get_instance(row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/instance_loaders.py", line 31, in get_instance
field = self.resource.fields[key]
KeyError: 'id'
ERROR:root:'id'
Traceback (most recent call last):
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 453, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 267, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 261, in get_instance
return instance_loader.get_instance(row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/instance_loaders.py", line 31, in get_instance
field = self.resource.fields[key]
KeyError: 'id'
ERROR:root:'id'
Traceback (most recent call last):
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 453, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 267, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 261, in get_instance
return instance_loader.get_instance(row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/instance_loaders.py", line 31, in get_instance
field = self.resource.fields[key]
KeyError: 'id'
ERROR:root:'id'
Traceback (most recent call last):
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 453, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 267, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 261, in get_instance
return instance_loader.get_instance(row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/instance_loaders.py", line 31, in get_instance
field = self.resource.fields[key]
KeyError: 'id'
ERROR:root:'id'
Traceback (most recent call last):
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 453, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 267, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 261, in get_instance
return instance_loader.get_instance(row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/instance_loaders.py", line 31, in get_instance
field = self.resource.fields[key]
KeyError: 'id'
ERROR:root:'id'
Traceback (most recent call last):
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 453, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 267, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 261, in get_instance
return instance_loader.get_instance(row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/instance_loaders.py", line 31, in get_instance
field = self.resource.fields[key]
KeyError: 'id'
ERROR:root:'id'
Traceback (most recent call last):
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 453, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 267, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 261, in get_instance
return instance_loader.get_instance(row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/instance_loaders.py", line 31, in get_instance
field = self.resource.fields[key]
KeyError: 'id'
ERROR:root:'id'
Traceback (most recent call last):
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 453, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 267, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 261, in get_instance
return instance_loader.get_instance(row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/instance_loaders.py", line 31, in get_instance
field = self.resource.fields[key]
KeyError: 'id'
ERROR:root:'id'
Traceback (most recent call last):
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 453, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 267, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 261, in get_instance
return instance_loader.get_instance(row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/instance_loaders.py", line 31, in get_instance
field = self.resource.fields[key]
KeyError: 'id'
ERROR:root:'id'
Traceback (most recent call last):
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 453, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 267, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 261, in get_instance
return instance_loader.get_instance(row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/instance_loaders.py", line 31, in get_instance
field = self.resource.fields[key]
KeyError: 'id'
ERROR:root:'id'
Traceback (most recent call last):
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 453, in import_row
instance, new = self.get_or_init_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 267, in get_or_init_instance
instance = self.get_instance(instance_loader, row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/resources.py", line 261, in get_instance
return instance_loader.get_instance(row)
File "/folder/env_app/lib/python3.6/site-packages/import_export/instance_loaders.py", line 31, in get_instance
field = self.resource.fields[key]
KeyError: 'id'
imported_data :: s_serial_number|s_number|s_provider|status|id
---------------|--------|----------|------|--
4499223 |44992233|2 |3 |
4499224 |44992234|2 |1 |
4499225 |44992235|2 |2 |
4499226 |44992236|2 |1 |
4499227 |44992237|2 |3 |
4499228 |44992238|2 |1 |
4499229 |44992239|2 |1 |
4499230 |44992240|3 |3 |
4499231 |44992241|1 |1 |
4499232 |44992242|1 |2 |
4499233 |44992243|3 |2 |
4499234 |44992244|2 |1 |
4499235 |44992245|2 |3 |
4499236 |44992246|2 |1 |
[04/Jul/2018 07:41:28] "POST /importing_sims/ HTTP/1.1" 200 1357
I tried add fake IDs, remove column, but nothing work
Any help ?
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Solved !
For example if your id column it's autonumber you can do this in your resources class.
`class BookResource(ModelResource):
class Meta:
model = Book
skip_unchanged = True
report_skipped = False
fields = ('id','title', 'publication_date', 'author', 'price', 'pages', 'book_type',)
def before_import_row(self, row, **kwargs):
row['id'] = None`
Regards !
Most helpful comment
Solved !
For example if your id column it's autonumber you can do this in your resources class.
`class BookResource(ModelResource):
Regards !