Environment:
Request Method: POST
Request URL: http://zds.francoisdambrine.me/validations/accepter/46/
Django Version: 1.7.7
Python Version: 2.7.3
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sitemaps',
'django.contrib.humanize',
'easy_thumbnails',
'easy_thumbnails.optimize',
'crispy_forms',
'haystack',
'munin',
'social.apps.django_app.default',
'rest_framework',
'rest_framework_swagger',
'corsheaders',
'oauth2_provider',
'zds.utils',
'zds.pages',
'zds.gallery',
'zds.mp',
'zds.article',
'zds.forum',
'zds.tutorial',
'zds.tutorialv2',
'zds.member',
'zds.featured',
'django.contrib.admin',
'debug_toolbar')
Installed Middleware:
(u'debug_toolbar.middleware.DebugToolbarMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'zds.utils.ThreadLocals',
'zds.middlewares.SetLastVisitMiddleware.SetLastVisitMiddleware',
'zds.middlewares.profile.ProfileMiddleware')
Traceback:
File "/home/francois/zds-site/zds-env/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
111. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/francois/zds-site/zds-env/local/lib/python2.7/site-packages/django/views/generic/base.py" in view
69. return self.dispatch(request, *args, **kwargs)
File "/home/francois/zds-site/zds-env/local/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapper
29. return bound_func(*args, **kwargs)
File "/home/francois/zds-site/zds-env/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
21. return view_func(request, *args, **kwargs)
File "/home/francois/zds-site/zds-env/local/lib/python2.7/site-packages/django/utils/decorators.py" in bound_func
25. return func.__get__(self, type(self))(*args2, **kwargs2)
File "/home/francois/zds-site/zds/member/decorator.py" in dispatch
56. return super(LoginRequiredMixin, self).dispatch(*args, **kwargs)
File "/home/francois/zds-site/zds/member/decorator.py" in dispatch
44. return super(PermissionRequiredMixin, self).dispatch(*args, **kwargs)
File "/home/francois/zds-site/zds-env/local/lib/python2.7/site-packages/django/views/generic/base.py" in dispatch
87. return handler(request, *args, **kwargs)
File "/home/francois/zds-site/zds-env/local/lib/python2.7/site-packages/django/views/generic/edit.py" in post
173. return self.form_valid(form)
File "/home/francois/zds-site/zds/tutorialv2/views/views_validations.py" in form_valid
373. published = publish_content(db_object, versioned, is_major_update=form.cleaned_data['is_major'])
File "/home/francois/zds-site/zds/tutorialv2/utils.py" in publish_content
536. parsed_with_local_images = retrieve_and_update_images_links(parsed, directory=extra_contents_path)
File "/home/francois/zds-site/zds/tutorialv2/utils.py" in retrieve_and_update_images_links
393. lambda g: retrieve_image_and_update_link(g, previous_urls, directory), md_text)
File "/home/francois/zds-site/zds/tutorialv2/utils.py" in <lambda>
393. lambda g: retrieve_image_and_update_link(g, previous_urls, directory), md_text)
File "/home/francois/zds-site/zds/tutorialv2/utils.py" in retrieve_image_and_update_link
370. new_url = retrieve_image(url, directory=directory)
File "/home/francois/zds-site/zds/tutorialv2/utils.py" in retrieve_image
314. img.save(os.path.join(directory, new_url))
File "/home/francois/zds-site/zds-env/local/lib/python2.7/site-packages/PIL/Image.py" in save
1667. raise KeyError(ext) # unknown extension
Exception Type: KeyError at /validations/accepter/46/
Exception Value: ''