2017-12-14 10 views
0

wagtail에서 모든 페이지 모델에 동일한 필드를 추가하는 좋은 방법이 있습니까? 나는 거의 모든 페이지가 구현하고자하는 SEO 데이터 필드와 검색 메타 정보 같은 것을 생각하고있다. 나는 Wagtail을 사용하여 이것을 할 수있는 좋은 방법을 찾을 수없는 것 같습니다.모든 페이지의 Wagtail 필드/데이터?

답변

2

믹스 인의 추상 클래스 (Wagtail의 Page 대신이 기본 클래스에서 상속 받음)를 사용할 수 있습니다. 그런 다음 mixin과 Wagtail의 Page에서 상속합니다.

아마도 추상 클래스를 사용하는 것이 가장 간단하지만 모든 페이지는 항상 기본 클래스에 정의 된 모든 필드를 상속합니다. 한편 믹스 인을 사용하면 여러 믹스 (SEOMixin, ThumbnailMixin 등)를 가질 수 있고 필요에 따라 믹스를 조합 할 수 있으므로 더 유연 해집니다.

+0

예. 나는 그 접근법에 대해 생각했다. 기존 프로젝트에 약간 열정적 인 것 같습니다. 하지만 끔찍한 생각은 아닙니다. –

+0

확인. 네, 믹스 인을 사용하는 것은 제가 테스트를받는 가장 좋은 방법입니다. 고마워 Loïc Teixeira. Python의 Mixins가 제대로 문서화되지 않았기 때문에 대답은 조금 혼란 스러웠습니다. Loïc Teixeira의 SEOMixin 클래스는 Django 세계에서 추상 클래스처럼 보이지만 사실 Mixin으로 작동합니다. Django 모델과 함께 Mixin을 사용하는 방법에 대한 좋은 자료입니다. https://stackoverflow.com/questions/3254436/django-model-mixins-inherit-from-models-model-or-from-object –

+1

사실, Django와의 mixins는 pure Python mixins과 조금 다릅니다. 훌륭한 링크와 장고 믹스에 대해 이야기 할 때 미래에 그것을 포함시킬 것입니다. 감사. –