2009-11-02 62 views
1

我想爲所有繼承於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] 

導致下拉列表「顯示,Singledisplay,反射,Singledisplayreflection」

回答

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__的選擇列表列表。

+0

我又想複雜:D謝謝! – vikingosegundo 2009-11-02 18:41:37

相關問題