Django admin list_display newline

Я пытаюсь отобразить текст с символами новой строки в отображении списка административной стороны Django.

class MyModelAdmin(admin.ModelAdmin):
    list_display = ('example')

def example(self,obj):
    return 'TYPE : %s \n RATE : %s \n FAMILY %s'

Однако он отображается без символов новой строки, например TYPE : xxx RATE : yyy FAMILY zzz.

Как это сделать в администраторе Django?

Ответ 1

Вам нужно использовать br вместо \n и указать, что этому полю разрешено использовать теги html:

def example(self):
    return 'TYPE : %s<br>RATE : %s<br>FAMILY %s' % (self.type, 
                                                    self.rate, 
                                                    self.family)
example.allow_tags = True

Или вы можете использовать еще один элегантный способ HTML для форматирования вашего вывода (например, обертывание каждого из элементов span с определенным классом и добавление некоторого css для последующего отображения ниже друг друга).