Not sure if this is a good way to do things (this is more of a technical question), but what if I have a Django model with __str__
function that combines several fields:
def __str__(self):
return f'{self.field0} {self.field1} {self.field2}'
In the admin, I might have the list_display
like so:
list_display = ['field0', 'field1']
How do I specify this to use the object representation returned by the __str__
function?
list_display = [<__str__() representation>, 'field0', 'field1']
By default, if you don't specify list_display
in the admin, it'll give me what I want. Can't I have both?
You can add callables to the list_display
attribute [Django-doc], so you can add str
:
def model_str(obj):
return str(model_str)
model_str.short_description = 'Object'
class MyModelAdminAdmin(admin.ModelAdmin):
# …
list_display = [model_str, 'field0', 'field1']
this is thus a reference to the builtin str(…)
function [python-doc].