Можете ли вы изменить метку поля в приложении администратора Django? - PullRequest
43 голосов
/ 13 декабря 2008

Как следует из названия. Я хочу иметь возможность изменить метку одного поля в приложении администратора. Мне известен атрибут Form.field, но как мне заставить Model или ModelAdmin передать эту информацию?

Ответы [ 5 ]

69 голосов
/ 13 декабря 2008

подробное имя поля является (необязательным) первым параметром при построении поля.

23 голосов
/ 07 февраля 2013

Если ваше поле является свойством (методом), вы должны использовать 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"
17 голосов
/ 09 июня 2014

Как предположил Хавьер, вы можете использовать подробное имя в своих полях в 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 голосов
/ 13 октября 2016

Метатопии

Передайте метаданные модели, используя внутренний класс 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 к модели совершенно необязательно.

4 голосов
/ 13 декабря 2008

Опираясь на ответ Хавьера; если вам нужна одна метка в формах (на внешнем интерфейсе) и другая метка на администраторе, лучше установить внутреннюю (админ) в модели и перезаписать ее на формах. Конечно, администратор будет автоматически использовать метку в поле модели.

...