Сделайте django admin для отображения не более 100 символов в результатах списка.
Я использую администратор Django для своего сайта, и я хотел бы сделать настройку того, как поле отображается на странице list_display для одной из моих моделей.
Одна из моих моделей имеет TextField
, которая может составлять 300 символов
Когда модель указана в администраторе Django, я хотел бы ограничить длину текста, отображаемого на дисплее списка Admin, до 100 символов.
Есть ли способ сделать это в классе Django Admin?
admin.py:
class ApplicationAdmin(admin.ModelAdmin):
model = Application
list_display = [ "title1", "title2"]
models.py:
class Application(models.Model):
title1 = models.TextField(max_length=300)
title2 = models.TextField(max_length=300)
Ответы
Ответ 1
Вы можете отобразить свойство, которое возвращает усеченную версию вашего значения поля в вашем классе ModelAdmin. Использование встроенных фильтров шаблонов делает это проще.
from django.template.defaultfilters import truncatechars # or truncatewords
class Foo(models.Model):
description = models.TextField()
@property
def short_description(self):
return truncatechars(self.description, 100)
class FooAdmin(admin.ModelAdmin):
list_display = ['short_description']