Eyal Ch
Eyal Ch

Reputation: 10066

django - add existing ModelAdmin with his inlines to another admin form

i have:

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

class EventAdmin(ModelAdmin):
    pass

when viewing Event at admin, i want that BookAdmin will be shown at the same form(with his inlines)

is it possible?

thanks

Upvotes: 1

Views: 137

Answers (1)

Oberix
Oberix

Reputation: 1141

If the point is just to show data from Book you may add Book fields in EventAdmin with __ notation (if the two models have some kind of relation) or just define EventAdmin methods that fetches values from Book and add them as readonly_fields.

Something like this:

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]

Otherwise, if the point is to be able to submit the two forms together, I'll suggest to define a custom Form class and handle the submitted data in a View.

Upvotes: 1

Related Questions