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:@admin.register(Hero)
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?.
No comments:
Post a Comment