Предыдущая часть.
В форме редактирования моделей в панели управления имя каждой формы генерируется из имени поля модели. Алгоритм генерации очень простой — 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
явно.