代码之家  ›  专栏  ›  技术社区  ›  vikingosegundo

如何从所有ImageSpec生成选择列表

  •  1
  • vikingosegundo  · 技术社区  · 16 年前

    我想为继承自的所有规范生成一个选择列表 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]
    

    1 回复  |  直到 14 年前
        1
  •  2
  •   Will McCutchen    16 年前

    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 列表

    推荐文章