4. How to show many to many or reverse FK fields on listview page?

For heroes you can track their father using this field:

father = models.ForeignKey(
    "self", related_name="children", null=True, blank=True, on_delete=models.SET_NULL

You have been asked to show the childeren of each Hero, on the listview page. Hero objects have the children reverse FK attribute, but you can’t add that to the :code`:list_display. You need to add an attribute to ModelAdmin and use that in list_display. You can do it like this:

class HeroAdmin(admin.ModelAdmin, ExportCsvMixin):

    def children_display(self, obj):
        return ", ".join([
            child.name for child in obj.children.all()
    children_display.short_description = "Children"

You will see a column for children like this:


You can use the same method for M2M relations as well. You should also read How to get Django admin urls for specific objects?.