django - 将现有的ModelAdmin与他的内联添加到另一个管理表单中

时间:2014-12-22 09:00:50

标签: python django django-admin

我有:

class BookAdmin(ModelAdmin):
    inlines = [ TextInline,]

class EventAdmin(ModelAdmin):
    pass

在管理员处查看活动时,我希望BookAdmin以相同的形式显示(带有他的内联)

有可能吗?

感谢

1 个答案:

答案 0 :(得分:1)

如果要点是显示来自Book的数据,您可以在EventAdmin中使用__表示法添加Book字段(如果两个模型具有某种关系),或者只定义从Book中获取值的EventAdmin方法并将它们添加为readonly_fields。

这样的事情:

class EventAdmin(ModelAdmin):

    def book_texts(self, instance):
        out = ''
        for book in instance.books:
            for inline in book.your_other_replated_class:
                out += inline.value_to_print
        return out
    book_text.allow_tags = True

    readonly_fields = [book_texts]

否则,如果要点是能够将两个表单一起提交,我建议定义一个自定义Form类并在View中处理提交的数据。