django-versatileimagefield
django-versatileimagefield copied to clipboard
Problem using package with django-treebeard
When saving an image in a model extended by MP_Node i get this error:
'tuple' object has no attribute '_committed'
It seem as VersatileImageFileDescriptor returns a Tuple to pre_save (file = (<InMemoryUploadedFile: Collaborate.min-1150x550.jpg (image/jpeg)>, u''))
django-versatileimagefield==1.9 django-treebeard==4.3
Environment:
Request Method: POST
Request URL: http://localhost:8090/admin/offers/pagenode/add/
Django Version: 1.10.4
Python Version: 2.7.15
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.gis',
'push_notifications',
'corsheaders',
'rest_framework',
'rest_framework.authtoken',
'rest_framework_gis',
'raven.contrib.django.raven_compat',
'phonenumber_field',
'ckeditor',
'versatileimagefield',
'storages',
'guardian',
'location_field.apps.DefaultConfig',
'mailqueue',
'treebeard',
'django_celery_results',
'django_celery_beat',
'core',
'offers',
'lyyti',
'auth_token',
'queue_mail',
'nested_admin',
'debug_toolbar']
Installed Middleware:
[u'raven.contrib.django.middleware.DjangoRestFrameworkCompatMiddleware',
u'raven.contrib.django.middleware.SentryMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'utils.middleware.api.Track400ErrorsMiddleware',
'utils.middleware.api.VerifyClientVersionMiddleware']
Traceback:
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner
39. response = get_response(request)
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/options.py" in wrapper
544. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
149. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
57. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/sites.py" in inner
211. return view(request, *args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/options.py" in add_view
1509. return self.changeform_view(request, None, form_url, extra_context)
File "/usr/local/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapper
67. return bound_func(*args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
149. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/django/utils/decorators.py" in bound_func
63. return func.__get__(self, type(self))(*args2, **kwargs2)
File "/usr/local/lib/python2.7/site-packages/django/utils/decorators.py" in inner
185. return func(*args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/options.py" in changeform_view
1443. new_object = self.save_form(request, form, change=not add)
File "/usr/local/lib/python2.7/site-packages/django/contrib/admin/options.py" in save_form
1001. return form.save(commit=False)
File "/usr/local/lib/python2.7/site-packages/treebeard/forms.py" in save
145. self.instance = self._meta.model.add_root(**cl_data)
File "/usr/local/lib/python2.7/site-packages/treebeard/mp_tree.py" in add_root
625. return MP_AddRootHandler(cls, **kwargs).process()
File "/usr/local/lib/python2.7/site-packages/treebeard/mp_tree.py" in process
345. newobj.save()
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py" in save
796. force_update=force_update, update_fields=update_fields)
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py" in save_base
824. updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py" in _save_table
908. result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py" in _do_insert
947. using=using, raw=raw)
File "/usr/local/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
85. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py" in _insert
1045. return query.get_compiler(using=using).execute_sql(return_id)
File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
1053. for sql, params in self.as_sql():
File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in as_sql
1006. for obj in self.query.objs
File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in pre_save_val
955. return field.pre_save(obj, add=True)
File "/usr/local/lib/python2.7/site-packages/versatileimagefield/fields.py" in pre_save
83. file = super(VersatileImageField, self).pre_save(model_instance, add)
File "/usr/local/lib/python2.7/site-packages/django/db/models/fields/files.py" in pre_save
290. if file and not file._committed:
Exception Type: AttributeError at /admin/offers/pagenode/add/
Exception Value: 'tuple' object has no attribute '_committed'