Обратите внимание, что подобная проблема может укусить вас, если вы используете os.path.join()
для включения расширения, которое уже содержит точку, что происходит автоматически при использовании os.path.splitext()
. В этом примере:
components = os.path.splitext(filename)
prefix = components[0]
extension = components[1]
return os.path.join("avatars", instance.username, prefix, extension)
Даже если extension
может быть .jpg
, вы получите папку с именем "foobar", а не файл с именем "foobar.jpg". Для предотвращения этого вам нужно добавить расширение отдельно:
return os.path.join("avatars", instance.username, prefix) + extension