如何在django admin中更改模型中字段的display_list中的标签?

hl0*_*37_ 5 python django label django-admin displaylist

我有一个模型,其中一些字段带有 verbose_name。这个冗长的名称适合管理编辑页面,但对于列表页面来说绝对太长了。

如何设置管理页面使用的标签list_display

小智 3

您可以创建自定义列。

\n

例如有下面的Person模型

\n
# "models.py"\n\nfrom django.db import models\n\nclass Person(models.Model):\n    name = models.CharField(max_length=30)\n    age =  models.IntegerField()\n
Run Code Online (Sandbox Code Playgroud)\n

现在,您可以使用 和 创建自定义列“my_name”和“my_age”my_name() ,并my_age()可以使用@admin.display \nas 重命名它们,如下所示:

\n
@admin.register(Person)\nclass PersonAdmin(admin.ModelAdmin):\n    list_display = ("my_name", "my_age") \n                  # "my_name" and "my_age" need to be assigned\n\n    @admin.display(description=\'My name\')\n    def my_name(self, obj):      # \xe2\x86\x91 Displayed\n        return obj.name\n\n    @admin.display(description=\'My age\')\n    def my_age(self, obj):       # \xe2\x86\x91 Displayed\n        return obj.age\n
Run Code Online (Sandbox Code Playgroud)\n

然后,“我的名字”、 “我的年龄”以及“姓名”和“年龄”字段的值显示如下:

\n

在此输入图像描述

\n

当然,除了自定义列“my_name”和“my_age”之外,您还可以分配“ name”和“age”字段如下所示:list_display

\n
@admin.register(Person)\nclass PersonAdmin(admin.ModelAdmin):\n    list_display = ("my_name", "my_age", "name", "age") \n                                          # \xe2\x86\x91 Here \xe2\x86\x91\n\n    @admin.display(description=\'My name\')\n    def my_name(self, obj):\n        return obj.name\n\n    @admin.display(description=\'My age\')\n    def my_age(self, obj):\n        return obj.age\n
Run Code Online (Sandbox Code Playgroud)\n

然后,NAMEAGE以及“name”和“age”字段的值显示如下:

\n

在此输入图像描述

\n