61

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

4

5 回答 5

96

字段的详细名称是字段构造时的(可选)第一个参数。

于 2008-12-13T13:59:40.527 回答
36

如果您的字段是一个属性(一种方法),那么您应该使用 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"
于 2013-02-07T04:25:28.450 回答
27

正如 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 以管理员形式显示其名称。

于 2014-06-09T13:36:37.217 回答
6
from django.db import models

class MyClassName(models.Model):    
    field_name = models.IntegerField(verbose_name='Field Caption')
于 2016-10-13T08:51:27.173 回答
5

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

于 2008-12-13T16:56:52.620 回答