Предыдущая часть.
В форме редактирования моделей в панели управления имя каждой формы генерируется из имени поля модели. Алгоритм генерации очень простой – Django меняет знаки подчёркивания на пробелы, а первые буквы слов переводит в заглавные буквы. Т.е., например модель publication_date
приложения Book
будет отображена как “Publication date“.
Однако, иногда вам может понадобится изменить такие заголовки. Это можно сделать, указав verbose_name
для модели.
Например, вот как можно изменить поле Author.email
на “e-mail“, который, напомним, выглядит так:
class Author(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=40) email = models.EmailField(blank=True)
Добавим к нему verbose_name='e-mail'
в поле email
:
class Author(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=40) email = models.EmailField(blank=True, verbose_name='e-mail')
Помните, что вам не нужно указывать заглавные буквы, кроме случаев, когда они должны быть таким всегда, например – “штат США”. Django автоматически переведёт их, когда потребуется, и будет использовать оригинальное написание verbose_name
в других местах, в которых не требуется использование заглавных букв в имени.
Вы можете передать verbose_name
как позиционный аргумент, для более компактной записи. Вот, например, как можно записать нашу предыдущую форму:
class Author(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=40) email = models.EmailField('e-mail', blank=True)
Однако, такой метод не будет работать с полями ManyToManyField
или ForeignKey
, так как для них первым аргументом требуется передать класс модели. В таком случае – вы можете передать verbose_name
явно.