Ответ 1
подробное имя поля является (необязательным) первым параметром при построении поля.
Как следует из названия. Я хочу иметь возможность изменить метку одного поля в приложении администратора. Я знаю атрибут Form.field, но как мне получить мою модель или ModelAdmin для передачи этой информации?
подробное имя поля является (необязательным) первым параметром при построении поля.
Если ваше поле является свойством (методом), вы должны использовать short_description:
class Person(models.Model):
...
def address_report(self, instance):
...
# short_description functions like a model field verbose_name
address_report.short_description = "Address"
Как предложил Хавьер, вы можете использовать подробное имя в своих полях в 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, лучше всего установить внутренний (администратор) в модель и перезаписать ее на бланках. Администратор, конечно, автоматически будет использовать метку в поле модели.
Мета-параметры ¶
Дайте метаданные модели, используя внутренний класс 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 в модель полностью необязательно.