我想为从imagekit.specs.ImageSpec
继承的所有规范生成一个选择列表。
这个想法是允许管理界面的用户选择一个ImageSpec来添加到图片中。
即:
class Display(ImageSpec):
pre_cache = True
increment_count = True
processors = [ResizeDisplay,]
class SingleDisplay(ImageSpec):
pre_cache = True
increment_count = True
processors = [SingleDisplayResize]
class Reflection(ImageSpec):
increment_count = True
processors = [ResizeDisplay, ReflectionProcessor]
class SingleDisplayReflection(ImageSpec):
increment_count = True
processors = [SingleDisplayResize, ReflectionProcessor]
会产生一个下拉列表“Display,Singledisplay,Reflection,Singledisplayreflection”
答案 0 :(得分:2)
嗯,类似下面的内容将为您提供文件中定义的所有ImageSpec子类的列表:
def subclassfilter(x, baseclass):
return x is not baseclass and isinstance(x, type) and issubclass(x, baseclass)
subclasses = [c for c in locals().values() if subclassfilter(c, ImageSpec)]
然后,您可以从__name__
列表中每个类的subclasses
属性生成选项列表。