Change list views in the default Django administration system let you have an overview of all instances of the specific models. By default, the list_display
model admin property controls the fields that are shown in different columns. Additionally, you can have custom functions set there that return the data from relations or display custom HTML. In this recipe, we will create a special function for the list_display
property that shows an image in one of the columns of the list view. As a bonus, we will make one field directly editable in the list view by adding the list_editable
setting.
To start with, make sure that django.contrib.admin
is in INSTALLED_APPS
in the settings and AdminSite
is hooked in the URL configuration. Then, create a new products
app and put it under INSTALLED_APPS
. This app will have the Product
and ProductPhoto
models, where one product might have multiple photos. For this example, we will also be using UrlMixin...