Django 子类化sorl thumbnail`ThumbnailBackend`类,并重写_get_thumbnail_filename不起作用

Django 子类化sorl thumbnail`ThumbnailBackend`类,并重写_get_thumbnail_filename不起作用,django,inheritance,sorl-thumbnail,overriding,Django,Inheritance,Sorl Thumbnail,Overriding,我打算从sorl.thumbnail.base中对ThumbnailBackend类进行子类化。我需要做的是重写\u get\u thumbnail\u filename方法,向原始(父)方法生成的文件名添加一些内容。为此,我写了如下内容: from sorl.thumbnail.base import ThumbnailBackend class MyThumbnailBackend(ThumbnailBackend): def _get_thumbnail_filename(sel

我打算从
sorl.thumbnail.base
中对
ThumbnailBackend
类进行子类化。我需要做的是重写
\u get\u thumbnail\u filename
方法,向原始(父)方法生成的文件名添加一些内容。为此,我写了如下内容:

from sorl.thumbnail.base import ThumbnailBackend

class MyThumbnailBackend(ThumbnailBackend):
    def _get_thumbnail_filename(self, source, geometry_string, options):
        oldpath = super(ThumbnailBackend,self)._get_thumbnail_filename(source, geometry_string, options)
        oldpathlist = oldpath.split('/')
        # get the last item of 'oldpathlist' and
        # sufix it with useful info...
        # join the items with the modified one...
        return newpath
python继承应该缺少一些东西,因为我一直遇到以下错误:

AttributeError at /location/of/the/caller/class/
'super' object has no attribute '_get_thumbnail_filename'
如果我是对的,我将在第一行导入:
from sorl.thumbnail.base import ThumbnailBackend
,它肯定有一个
\u get\u thumbnail\u filename
方法

我做错了什么


多谢各位

您必须使用当前类调用super,将
super(ThumbnailBackend,self)
更改为
super(MyThumbnailBackend,self)
,如下所示

class MyThumbnailBackend(ThumbnailBackend):
    def _get_thumbnail_filename(self, source, geometry_string, options):
        return super(MyThumbnailBackend, self)._get_thumbnail_filename(source, geometry_string, options)