-
Notifications
You must be signed in to change notification settings - Fork 278
Description
I am using imagekit with djangorestframework and get below exception:
Traceback (most recent call last):
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/core/handlers/base.py", line 249, in _legacy_get_response
response = self._get_response(request)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
return view_func(*args, **kwargs)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/rest_framework/viewsets.py", line 83, in view
return self.dispatch(request, *args, **kwargs)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/rest_framework/views.py", line 477, in dispatch
response = self.handle_exception(exc)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/rest_framework/views.py", line 437, in handle_exception
self.raise_uncaught_exception(exc)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/rest_framework/views.py", line 474, in dispatch
response = handler(request, *args, **kwargs)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/rest_framework/mixins.py", line 21, in create
self.perform_create(serializer)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/rest_framework/mixins.py", line 26, in perform_create
serializer.save()
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/rest_framework/serializers.py", line 214, in save
self.instance = self.create(validated_data)
File "/Users/rsuri/espressive/src/django/espressive/espuser/serializers.py", line 232, in create
return super(ProfileImageSerializer, self).create(validated_data)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/rest_framework/serializers.py", line 902, in create
instance = ModelClass.objects.create(**validated_data)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/db/models/query.py", line 399, in create
obj.save(force_insert=True, using=self.db)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/db/models/base.py", line 796, in save
force_update=force_update, update_fields=update_fields)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/db/models/base.py", line 824, in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/db/models/base.py", line 908, in _save_table
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/db/models/base.py", line 947, in _do_insert
using=using, raw=raw)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/db/models/query.py", line 1045, in _insert
return query.get_compiler(using=using).execute_sql(return_id)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 1053, in execute_sql
for sql, params in self.as_sql():
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 1006, in as_sql
for obj in self.query.objs
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 955, in pre_save_val
return field.pre_save(obj, add=True)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/db/models/fields/files.py", line 292, in pre_save
file.save(file.name, file, save=False)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/imagekit/models/fields/files.py", line 12, in save
content = generate(spec)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/imagekit/utils.py", line 134, in generate
content = generator.generate()
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/imagekit/specs/init.py", line 153, in generate
self.source.open()
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/db/models/fields/files.py", line 81, in open
self.file.open(mode)
File "/Users/rsuri/espressive/src/esp/lib/python2.7/site-packages/django/core/files/uploadedfile.py", line 96, in open
self.file.seek(0)
ValueError: I/O operation on closed file.
On debugging this issue I found that in specs/init.py at line number 159, file gets closed even if the it was not opened in this path.