django admin截断list_display中的文本

Str*_*ker 7 django admin 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)
Run Code Online (Sandbox Code Playgroud)

即描述字段的原始文本包含超过255个字符。我喜欢只显示前 10 个字符加上...

Str*_*ker 13

我必须在模型中创建一个属性,如下所示:

from django.template.defaultfilters import truncatechars
...

@property
    def short_description(self):
        return truncatechars(self.description, 35)
Run Code Online (Sandbox Code Playgroud)

并使用short_descriptioin管理中的 来修剪文本。


hem*_*raj 5

使用 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)
Run Code Online (Sandbox Code Playgroud)