我正在为我的网站使用Django管理员,我想对我的某个模型的list_display页面上的字段显示方式进行自定义。
我的一个模特的TextField
可以是300个字符
当模型在Django管理员中列出时,我想将管理列表显示中显示的文本长度限制为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)
答案 0 :(得分:37)
您可以在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']
答案 1 :(得分:0)
在您的 Admin.py 文件中:
class ApplicationAdmin(admin.ModelAdmin):
list_display = ['titl1','title2'] # titl1 is behalf of title1
def titl1(self, obj):
return obj.title1[:100]