55.. _filebrowser: https://github.com/sehmaschine/django-filebrowser
66"""
77
8+ from django .db .models .fields .files import ImageFieldFile
9+
810from filebrowser .base import FileObject
911from filebrowser .fields import FileBrowseWidget
12+ from filebrowser .sites import site
1013
1114from ..widgets import CropWidget , get_attrs
1215from .base import ImageBackend
@@ -30,10 +33,19 @@ class FileBrowserBackend(ImageBackend):
3033 WIDGETS ['FileBrowseField' ] = CropFileBrowseWidget
3134
3235 def get_thumbnail_url (self , image_path , thumbnail_options ):
33- image = image_path if isinstance (
34- image_path , FileObject ) else FileObject ( image_path )
35- return image .version_generate (self . version_suffix , thumbnail_options ).url
36+ image = self . get_imageobject ( image_path )
37+ version_suffix = thumbnail_options . pop ( 'version_suffix' , self . version_suffix )
38+ return image .version_generate (version_suffix , thumbnail_options ).url
3639
3740 def get_size (self , image ):
38- image = image if isinstance ( image , FileObject ) else FileObject (image )
41+ image = self . get_imageobject (image )
3942 return image .dimensions
43+
44+ def get_imageobject (self , image ):
45+ if isinstance (image , FileObject ):
46+ return image
47+ if isinstance (image , ImageFieldFile ):
48+ image = image .path
49+ if image .startswith (site .storage .base_location ):
50+ image = image [len (site .storage .base_location )+ 1 :]
51+ return FileObject (image )
0 commit comments