django admin 在 list_display 中截断文本
django admin truncate text in list_display
需要在管理中截断文本list_display
管理模型中有以下内容,但仍显示全文。
from django.template.defaultfilters import truncatewords
def get_description(self, obj):
return truncatewords(obj.description, 10)
get_description.short_description = "description"
class DieTaskAdmin(admin.ModelAdmin):
list_display =['severity','priority', 'subject', 'status','created',get_description.short_description']
admin.site.register(DieTask, DieTaskAdmin)
即描述字段的原始文本包含超过 255 个字符。
我喜欢只显示前 10 个字符加上 ...
我必须在模型中创建一个 属性,如下所示:
from django.template.defaultfilters import truncatechars
...
@property
def short_description(self):
return truncatechars(self.description, 35)
并在管理员中使用 short_descriptioin
到 trim 文本。
就我个人而言,我会避免在模型 methods/properties 中使用 Django 模板函数。 IMO 是更清洁的解决方案,改用本机 Python 方法:
@property
def short_description(self):
return self.description if len(self.description) < 35 else (self.description[:33] + '..')
如何使用 python 内置切片语法
class DieTaskAdmin(admin.ModelAdmin):
list_display =['severity','priority', 'subject', 'status','created','get_description']
def get_description(self, obj):
return obj.description[:10]
get_description.short_description = "description"
admin.site.register(DieTask, DieTaskAdmin)
需要在管理中截断文本list_display
管理模型中有以下内容,但仍显示全文。
from django.template.defaultfilters import truncatewords
def get_description(self, obj):
return truncatewords(obj.description, 10)
get_description.short_description = "description"
class DieTaskAdmin(admin.ModelAdmin):
list_display =['severity','priority', 'subject', 'status','created',get_description.short_description']
admin.site.register(DieTask, DieTaskAdmin)
即描述字段的原始文本包含超过 255 个字符。 我喜欢只显示前 10 个字符加上 ...
我必须在模型中创建一个 属性,如下所示:
from django.template.defaultfilters import truncatechars
...
@property
def short_description(self):
return truncatechars(self.description, 35)
并在管理员中使用 short_descriptioin
到 trim 文本。
就我个人而言,我会避免在模型 methods/properties 中使用 Django 模板函数。 IMO 是更清洁的解决方案,改用本机 Python 方法:
@property
def short_description(self):
return self.description if len(self.description) < 35 else (self.description[:33] + '..')
如何使用 python 内置切片语法
class DieTaskAdmin(admin.ModelAdmin):
list_display =['severity','priority', 'subject', 'status','created','get_description']
def get_description(self, obj):
return obj.description[:10]
get_description.short_description = "description"
admin.site.register(DieTask, DieTaskAdmin)