Comments (1)
After further investigation in the source code, I see that the problem is located in avatar_file_path()
method located in the models.py
file. There is a comment that explicitly says that using the file extension depends on whether AVATAR_HASH_FILENAMES
is activated or not, so if you don't set it to True explicitly in your settings.py the thumbnails will have the original extension, even they are in jpg. If you won't fix this, at least mention it in the docs, thanks! :)
def avatar_file_path(instance=None, filename=None, size=None, ext=None):
tmppath = [AVATAR_STORAGE_DIR]
if AVATAR_HASH_USERDIRNAMES:
tmp = hashlib.md5(get_username(instance.user)).hexdigest()
tmppath.extend([tmp[0], tmp[1], get_username(instance.user)])
else:
tmppath.append(get_username(instance.user))
if not filename:
# Filename already stored in database
filename = instance.avatar.name
if ext and AVATAR_HASH_FILENAMES:
# An extension was provided, probably because the thumbnail
# is in a different format than the file. Use it. Because it's
# only enabled if AVATAR_HASH_FILENAMES is true, we can trust
# it won't conflict with another filename
(root, oldext) = os.path.splitext(filename)
filename = root + "." + ext
else:
# File doesn't exist yet
if AVATAR_HASH_FILENAMES:
(root, ext) = os.path.splitext(filename)
filename = hashlib.md5(smart_str(filename)).hexdigest()
filename = filename + ext
if size:
tmppath.extend(['resized', str(size)])
tmppath.append(os.path.basename(filename))
return os.path.join(*tmppath)
from django-avatar.
Related Issues (20)
- Fix RemovedInDjango40Warning warnings to support Django 4.0 HOT 3
- Migration to Django4.0 : TypeError: __init__() got an unexpected keyword argument 'providing_args' HOT 4
- Resized avatar getting double rotation in Safari HOT 4
- Cut a release/move to jazzband HOT 3
- Implement Jazzband guidelines for django-avatar HOT 21
- update readme links
- ANTIALIAS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead. HOT 2
- update links
- version in multiple places
- AVATAR_GRAVATAR_FIELD is optional and code fails when not given
- Avatar initial set-up; ReadMe Specificity
- get_primary_avatar() fails when given an int
- Add support for STORAGES settings introduced in Django 4.2 HOT 1
- BUG Custom User Model in Django E039 HOT 1
- Error: Reverse for 'avatar_change' not found HOT 4
- django-avatar readthedocs are not updated
- ResourceWarning: unclosed file in create_thumbnail
- RemovedInDjango51Warning: The DEFAULT_FILE_STORAGE setting is deprecated
- Initials Avatar
- Serialize avatars list along with User model
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from django-avatar.