需要在admin list_display中删除文本
在管理模型中有以下内容,但仍显示全文。
from django.template.defaultfilters import truncatewords
15
16
17
18 def get_description(self, obj):
19
20 return truncatewords(obj.description, 10)
21 get_description.short_description = "description"
22
23
24
25 class DieTaskAdmin(admin.ModelAdmin):
26
27
28 list_display =['severity','priority', 'subject', 'status','created',get_description.short_description']
29
30 admin.site.register(DieTask, DieTaskAdmin)
即描述字段的原始文本包含超过255个字符。 我喜欢只显示前10个字符加......
答案 0 :(得分:1)
我必须在模型中创建一个属性,如下所示:
from django.template.defaultfilters import truncatechars
...
@property
def short_description(self):
return truncatechars(self.description, 35)
并使用管理员中的short_descriptioin
修剪文字。
答案 1 :(得分:1)
我个人会避免在模型方法/属性中使用Django模板函数。 IMO是更干净的解决方案,请改用本机Python方法:
@property
def short_description(self):
return self.description if len(self.description) < 35 else (self.description[:33] + '..')
答案 2 :(得分:0)
如何使用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)