2013-12-25 1 views
0

Интересно, возможно ли получить все классы родителей из внутреннего класса Meta.получить весь родительский класс от внутренней Meta в django?

class Abc(A,B,C): 
    class Meta: 
    # I wanna know A,B,C without explicitly listing them again. 
    # something like self.parents() 

Edit: актуальная проблема ..

Tastypie accessing fields from inherited models

мне нужно перечислить родителей классы в мета.

class Abc(A,B,C): 

    class Meta: 
     list_of_fields_of_parents = A.fields + B.fields + C.fields 
+0

Что вам нужно для них? Особенно внутри класса Meta? Какую * актуальную проблему вы пытаетесь решить? –

+0

@ DanielRoseman: Я отредактировал вопрос – eugene

ответ

0

Вы можете использовать Abc.__bases__. Например:

class Meta: 
    list_of_fields_of_parents = [b.fields for b in Abc.__bases__] 

Потому что это не работает для MetaвнутриAbc класса, вы можете хранить свои базовые классы в списке, чтобы держать вещи DRY:

abc_bases = [A, B, C] 

class Abc(*bases): 
    class Meta: 
     list_of_fields_of_parents = [b.fields for b in abc_bases] 
+0

Я пробовал это. и я получил ошибку «Abc» не определен. – eugene

+0

О, вы правы. Это своего рода проблема с курицей/яйцом, потому что класс 'Abc' не полностью построен в этот момент. Я отредактирую свой ответ с другой возможностью ... – sk1p