我有内联:
class GenderInline(admin.StackedInline):
model = models.GenderModel1
extra = 0
我想在不同的管理表单中使用此内联。
一旦我想要他的模型将是models.GenderModel1,并且一旦models.GenderModel2(根据AdminForm这个内联是相关的)
我能这样做吗?或者唯一的方法是复制内联? (我不喜欢......我需要复制10个内联..):
class GenderInline1(admin.StackedInline):
model = models.GenderModel1
extra = 0
class GenderInline2(admin.StackedInline):
model = models.GenderModel2
extra = 0
答案 0 :(得分:3)
实际上,您可以使用type
动态创建类,以避免定义multipl类。定义一个包含内联的函数,如下所示:
def get_inline_by_model(m): return type( 'DynamicInline', (admin.StackedInline, ), {'model':m, 'extra':0} )
然后在您的Admin类中,您可以定义内联,如:
inlines = ( get_inline_by_model (models.GenderModel1 ) , )