2013-06-21 81 views

回答

1
def go_for_the_bases(model): 
    while hasattr(model, '_meta'): 
     model = model.__base__ 
     if hasattr(model, '_meta') and model._meta.abstract == True: 
      yield model 
1

您可以使用mro()表示方法解析順序。

ClassName.mro() 

它給出了類的元組,它的基數,它的基數的基數......等,直到我們到達對象。

您可以遍歷它並檢查className._meta.abstract是否爲真,直到您到達抽象類。