Intro
Lorsque le modèle d'une page est sous-classé du modèle standard Page, il est parfois frustrant de de pas pouvoir choisir le label que l'on veut voir s'afficher dans l'admin de wagtail:
La solution en une étape
Voici mon modèle de départ:
class BlogPage(Page):
date = models.DateField("Post date")
intro = models.CharField(max_length=250)
body = RichTextField(blank=True)
search_fields = Page.search_fields + [
index.SearchField('intro'),
index.SearchField('body'),
]
content_panels = Page.content_panels + [
FieldPanel('date'),
FieldPanel('intro'),
FieldPanel('body', classname="full"),
]
Imaginons que je souhaite remplacer le label Titre par Titre de l'article dans l'admin, il s'agit d'ajouter une méthode init dans ma classe afin de pouvoir modifier ce label en question:
class BlogPage(Page):
date = models.DateField("Post date")
intro = models.CharField(max_length=250)
body = RichTextField(blank=True)
search_fields = Page.search_fields + [
index.SearchField('intro'),
index.SearchField('body'),
]
content_panels = Page.content_panels + [
FieldPanel('date'),
FieldPanel('intro'),
FieldPanel('body', classname="full"),
]
def __init__(self, *args, **kwargs):
super(BlogPage, self).__init__(*args, **kwargs)
self._meta.get_field('title').verbose_name = 'Titre de l'article'