您可以更改 Django Admin 应用程序中的字段标签吗?

Posted

技术标签:

【中文标题】您可以更改 Django Admin 应用程序中的字段标签吗?【英文标题】:Can you change a field label in the Django Admin application? 【发布时间】:2010-09-26 18:38:46 【问题描述】:

正如标题所示。我希望能够更改管理应用程序中单个字段的标签。我知道 Form.field 属性,但是如何让我的 Model 或 ModelAdmin 传递该信息?

【问题讨论】:

【参考方案1】:

字段的verbose name 是字段构造时的(可选)第一个参数。

【讨论】:

想知道:这是否可能仅通过管理员进行,例如注销和重新注册模型时?答案是肯定的,可以使用自定义表单(更复杂字段的缺点)或通过管理员的自定义功能属性。如果可能的话,正在寻找一个更简单的解决方案......【参考方案2】:

如果您的字段是属性(方法),那么您应该使用 short_description:

class Person(models.Model):
    ...

    def address_report(self, instance):
        ...
    # short_description functions like a model field's verbose_name
    address_report.short_description = "Address"

【讨论】:

你描述的是一个可以利用字段的函数,而不是字段本身。【参考方案3】:

正如 Javier 建议的那样,您可以在 model.py 的字段中使用详细名称。示例如下,

class Employee(models.Model):
     name = models.CharField(max_length = 100)
     dob = models.DateField('Date Of Birth')
     doj = models.DateField(verbose_name='Date Of Joining')
     mobile=models.IntegerField(max_length = 12)
     email = models.EmailField(max_length=50)
     bill = models.BooleanField(db_index=True,default=False)
     proj = models.ForeignKey(Project, verbose_name='Project')

这里的 dob、doj 和 proj 文件将根据这些字段中提到的 verbose_name 以管理形式显示其名称。

【讨论】:

【参考方案4】:

以哈维尔的回答为基础;如果您需要表单中的一个标签(在前端)和管理员上的另一个标签,最好在模型中设置一个内部(管理员)标签并将其覆盖在表单上。管理员当然会自动使用模型字段中的标签。

【讨论】:

【参考方案5】:
from django.db import models

class MyClassName(models.Model):    
    field_name = models.IntegerField(verbose_name='Field Caption')

【讨论】:

它被要求更改字段名,而不是类名。因此-1

以上是关于您可以更改 Django Admin 应用程序中的字段标签吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django Admin 中更改 ForeignKey 显示文本?

django admin:单独的只读视图和更改视图

Django Admin Cookbook-36如何更改下拉菜单中的ForeignKey显示文本

在我更改了一些模型字段(Django)之后,尝试访问 django admin 时出现 /admin/myapp/mymodel 的 TypeError

django admin中的更改列表显示链接

如何根据 Django admin 中的另一个选择标签选项更改选择标签选项?