Wagtail Custom Field와 Panel을 작성하는 방법에 대해서 기술해보려고 한다. 

https://www.accordbox.com/blog/wagtail-tutorials-8-add-markdown-support/

 

Wagtail Tutorials #8: Add Markdown Support In Wagtail Blog

In this wagtail tutorial, I will show you how to add Markdown support to our wagtail blog.

www.accordbox.com

(참고 사이트)

 

사실 일반 목적의 필드를 커스텀 하고 싶을 때는 이후에 사용할 Widget을 커스텀 하는 방법을 사용하면 되지만 Field하고 Panel도 언젠가는 사용할 일이 올 것으로 생각하고 정리해본다. 

 

from django.db.models import TextField
from django.utils.translation import ugettext_lazy as _

from wagtail.admin.edit_handlers import FieldPanel


class MarkdownField(TextField):
    def __init__(self, **kwargs):
        super(MarkdownField, self).__init__(**kwargs)


class MarkdownPanel(FieldPanel):
    def __init__(self, field_name, classname="", widget=None, **kwargs):
        super(MarkdownPanel, self).__init__(
            field_name,
            classname=classname,
            widget=widget,
            **kwargs
        )

        if self.classname:
            if 'markdown' not in self.classname:
                self.classname += "markdown"
        else:
            self.classname = "markdown"

방법은 간단하다 위에 코드는 사이트에 나온 그대로 가져온 것이다. Django의 TextField를 상속받아서 재정의 해준 것이다. Panel로 마찬가지이다. 다만 panel에서 widget이나 classname을 정의해서 custom 할 수 있다. 이후에 소개할 custom widget을 custom panel에 적용해서 사용할 수도 있겠다. 

'Back-End > Wagtail, Django' 카테고리의 다른 글

Wagtail Video  (0) 2021.10.01
Wagtail Custom Widget (+Model)  (0) 2021.09.29
Wagtail hooks로 RichTextField에 구글 폰트 적용  (0) 2021.09.19
Wagtail Custom Block Field 만들기  (0) 2021.09.19
Wagtail 중첩 StreamField  (0) 2021.09.01

+ Recent posts