使django admin在列表结果中显示不超过100个字符

时间:2013-03-08 02:35:07

标签: python django

我正在为我的网站使用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)

2 个答案:

答案 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]