2017-05-23 1 views
1

J'ai essayé de rechercher la documentation officielle et les panneaux de message relatifs pour ceci mais je n'ai pas été capable de trouver n'importe quoi lié.Cacher de nouvelles pages d'être créé dans Wagtail

Certains des modèles de pages de mon site Web ne doivent être utilisés qu'une seule fois, par exemple. page d'accueil

Existe-t-il un moyen, dans Wagtail, de masquer ou d'interdire aux utilisateurs de sélectionner ce modèle de modèle/page lors de la création d'une nouvelle page?

Répondre

2

Vous pouvez limiter les emplacements où il est possible de créer un type de page en modifiant YourPageModel.parent_page_types, voir http://docs.wagtail.io/en/v1.10.1/reference/pages/model_reference.html#wagtail.wagtailcore.models.Page.parent_page_types. De même, il existe un paramètre subpage_types. Par exemple, vous pouvez faire en sorte que NewsIndexPage ne puisse être créé qu'en tant qu'enfant direct de HomePage et ne contienne que des instances NewsItemPage. Combiner cela avec les permissions des utilisateurs devrait suffire pour les pages d'accueil ou les types de pages à un endroit suffisamment élevé dans l'arbre.

Si vous devez absolument appliquer un seul type de page, il est possible de surcharger le classmethod clean_parent_page_models, pour retourner [] si une instance de cette classe existe déjà. Cette approche est un hack, cependant, et pourrait être brisée par les futures versions de Wagtail.

+0

Génial, merci! Dommage que ce n'est pas inclus dans le tutoriel:/- bien que maintenant je suppose que quiconque recherche Google, cela trouvera ce post! – DDiran

+0

Bonne suggestion. Les demandes de tirage sont toujours les bienvenues. https://github.com/wagtail/wagtail/blob/master/docs/getting_started/tutorial.rst – nimasmi