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

时间:2008-12-13 10:30:42

标签: python django django-admin django-forms

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

5 个答案:

答案 0 :(得分:68)

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

答案 1 :(得分:23)

如果您的字段是属性(方法),那么您应该使用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"

答案 2 :(得分:16)

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

答案 3 :(得分:4)

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

答案 4 :(得分:4)

元选项

使用内部类Meta提供模型元数据,如下所示:

from django.db import models

class MyClassName(models.Model):

    class Meta:
        verbose_name = "Question"
        verbose_name_plural = "Questions"

人类可读的单数和复数名称(verbose_name和verbose_name_plural)。不需要,并且将类Meta添加到模型中是完全可选的。