Wagtail Ajax Template을 간단하게 적어보고 넘어가려고 한다. 

 

 

1. base.html

{# Global javascript #}
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
-> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.js" integrity="sha512-WBbdKQKeIQFarq1hrOxNL/gnp0Tqh25fn0z3X1po+ej8iuHhHdp6Sh9l+tghGw5L1bsvtzjeuSKsL80RW3XdYw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

base.html에는 기본적으로 jquery slim버전이 있을 것이다. 하지만 slim은 ajax를 지원하지 않으니 https://cdnjs.com/libraries/jquery

으로 가서 ajax가 포함된 jquery로 바꿔주자.

 

 

2. blog/models.py

class BlogListingPage(RoutablePageMixin, Page):

    template = "blog/blog_listing_page.html"
    ajax_template = "blog/blog_listing_page_ajax.html"
    max_count = 1
    subpage_types = ['blog.ArticleBlogPage', 'blog.VideoBlogPage']

Wagtail은 ajax_template 기능을 제공한다. 새로운 html 파일을 만들어서 ajax 기능을 적으면 된다. 

 

 

3. Template blog/blog_listing_page_ajax.html

{% for post in posts %}
    <h1>{{ post.title }}</h1>
    {% if post.specific.subtitle %}
        <p>{{ post.specific.subtitle }}</p>
    {% endif %}
{% endfor %}

간단하게 post들의 title과 subtitle을 가져오는 템플릿을 작성하였다. 

 

 

4. 사용

크롬에서 f12를 누르고 개발자 도구에서 콘솔로 실행시킨다. 

 

 

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

Wagtail Custom Admin Tabs  (0) 2021.12.01
Wagtail Tags  (0) 2021.12.01
Wagtail Cache  (0) 2021.11.28
Wagtail Recaptcha  (0) 2021.11.28
Wagtail Rich Editor Extend  (0) 2021.11.27

+ Recent posts