A Django blog app implemented in Wagtail

Overview

Puput

https://travis-ci.org/APSL/puput.svg?branch=master https://readthedocs.org/projects/puput/badge/?version=latest https://api.codacy.com/project/badge/grade/f96e31ee1b8c4aa2b1402f12308afe96

Puput is a powerful and simple Django app to manage a blog. It uses the awesome Wagtail CMS as content management system.

Puput is the catalan name for Hoopoe which is indeed a beautiful bird.

http://i.imgur.com/3ByGQb6.png

Visit the documentation for an in-depth look at Puput.

Features

  • Built with Wagtail CMS and Django
  • Inspired in Wordpress and Zinnia
  • Simple & responsive HTML template by default
  • SEO friendly urls
  • Support for Disqus comments
  • Entries by author, tags, categories, archives and search term
  • Last & popular entries
  • Configurable sidebar widgets
  • RSS feeds
  • Related entries
  • Extensible entry model
  • Configurable default template color
  • Social share of blog entries (Facebook, Twitter and LinkedIn)

http://i.imgur.com/d13sGI3.png

Examples of blog sites made with Puput

Setup

The setup process is explained here.

Related repositories

Comments
  • Initial Attempt at a stream_body field

    Initial Attempt at a stream_body field

    This PR adds a "stream_body" StreamField to EntryPage. It leaves the existing "body" field, but allows it to be blank. The "stream_body" StreamField allows building dynamic page content using several blocks:

    • Heading
    • Paragraph
    • Syntax Highlighted Code (in many languages)
    • Video Embed
    • Table (You can copy / paste from Excel, as well!)
    • Captioned Image

    It could use a little CSS love - not my forte, for example, on tables - but I figured it was worth getting pulled in for discussion.

    opened by FlipperPA 63
  • Body content as StreamField

    Body content as StreamField

    Maybe the WordPress way is not the best way, but I think some of the WordPress options to create diferent kind of posts is a very good idea.

    Something like custom_post_types

    What do you think about that. Is it too opinionated aproach?. Should those be pluggins?

    enhancement 
    opened by iampbernardo 31
  • Adding support for Django 2.0 and Wagtail 2.0

    Adding support for Django 2.0 and Wagtail 2.0

    This PR enables the support for Wagtail 2.0, I've tested almost all the features in a test blog I have and it seemed to be working fine.

    For now there's no support for highlighted code blocks for Draftail in this PR but I'm in contact with some of the Wagtail's core devs and they suggested to me to develop that feature as a separated package which could be added to Wagtail's core in the future, so that's my next step and after that I'll be adding that feature here in Pupput.

    Also, for now I've added Blockquotes and Code Lines (like this -> this_is_a_method()) support for the Puput's Draftail, let me know if there is another Inline or Block feature you want us to support here.

    opened by MiltonLn 20
  • puput.models.DoesNotExist: BlogPage matching query does not exist.

    puput.models.DoesNotExist: BlogPage matching query does not exist.

    Thanks a lot for providing puput package. I am trying to use it for my website. However, I have some issues in making it work.

    I can access the blog_admin site but not the blog site. When I try to fix the tree in wagtail using './manage.py fixtree', I get the following error:

    puput.models.DoesNotExist: BlogPage matching query does not exist.

    I accidentally deleted the blog page from the blog_admin page. I was thinking that it's a normal django admin page, where you can add/delete anything. Is there a way to make it work again?

    Could you please help me with this issue.

    Best regards, Amit

    documentation 
    opened by zugspitze 11
  • Stream body

    Stream body

    Hello,

    This is a continuation for the pull request #83 merging with https://github.com/APSL/puput/compare/body_streams

    I have dropped the Heading, Video Embed, Captioned Image and Table blocks supported on pull request #83 because each one of those can be handled with Rich Text Block or Markdown Block, but the CodeBlock implementation with Pygments is still there.

    From (https://github.com/APSL/puput/compare/body_streams) i have added the QuoteBlocks and RawHTML support and finished the MarkdownBlock work.

    For Markdown support i have extracted a few ideas from https://github.com/torchbox/wagtail-markdown but creating a 'puput_markdown' package inside puput, please let me know if this needs to be handled outside. I have used the SimpleMDE plugin for handling the Markdown editor and for parsing i have used bleach and python-markdown with some extensions, this Markdown implementation uses Pygments too for code highlighting and it looks exactly the same as de CodeBlock (I think we can drop the CodeBlock, is easier to handle code snippets with markdown editor)

    I am having troubles with the RichTextBlock displaying but i think it's a Wagtail issue, on StreamFields it displays this way: image

    but the proper way to display it is this: image

    Any idea of how to solve it?

    Some captures of the work:

    image

    image

    Please let me know what else can i do, documentation? testing? some extra explanation?

    I'm very looking forward for merging and uploading to Pypi this feature. Thanks!

    • Milton Lenis PS: I can speak spanish too
    opened by MiltonLn 11
  • Substitute Category model

    Substitute Category model

    Hi,

    is there anyway substitute the puput category model with a custom one? I'm trying to install puput over an existing django project. All has gone very well, but my project already has his own category model that can't be substitute.

    Best,

    Fabio

    enhancement 
    opened by fab10m 11
  • Support wagtail 2.4

    Support wagtail 2.4

    Wagtail 2.3 keeps telling me that it has a newer version available. I tracked the cause down to puput's dependency on wagtail < 2.4. puput 1.0.3 has requirement wagtail<2.4,>=2.0, but you'll have wagtail 2.4 which is incompatible.

    Is it a trivial fix to support the newer Wagtail or is 2.4 specifically excluded?

    opened by matburnham 9
  • PUPUT_USERNAME_FIELD

    PUPUT_USERNAME_FIELD

    get_entries() in puput.models BlogPage raises an error.

    def get_entries(self):
        field_name = 'owner__%s' % getattr(settings, 'PUPUT_USERNAME_FIELD', 'username')
        return EntryPage.objects.descendant_of(self).live().order_by('-date')#.select_related(field_name)
    
    

    This results in select_related('owner__username') which is wrong and shoud be select_related('owner')

    bug 
    opened by robslotboom 9
  • Add support for other comment systems

    Add support for other comment systems

    It would be interesting to have support for other comment systems like Facebook comments. Before that the following things are needed:

    • [x] Remove tapioca-disqus from setup.py
    • [x] Refactor EntryPageUpdateCommentsView to suport other comment systems
    • [x] Refactor js code that update the number of comments of an entry.
    enhancement 
    opened by marctc 9
  • Circular Import Error with 'include('puput.urls')' in Django urls.py

    Circular Import Error with 'include('puput.urls')' in Django urls.py

    Per the puput documentation for configuring a standalone blog app, when adding 'path(' ', include('puput.urls'))', to my urls.py, I receive a circlar import error when get_entry_url and get_feeds_url are imported . See below.

    Note: I am attempting to add Puput to a django 3.14 installation.

    Traceback (most recent call last): File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/template/backends/django.py", line 121, in get_package_libraries module = import_module(entry[1]) File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1014, in _gcd_import File "", line 991, in _find_and_load File "", line 975, in _find_and_load_unlocked File "", line 671, in _load_unlocked File "", line 783, in exec_module File "", line 219, in _call_with_frames_removed File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/puput/templatetags/puput_tags.py", line 10, in from ..urls import get_entry_url, get_feeds_url ImportError: cannot import name 'get_entry_url' from partially initialized module 'puput.urls' (most likely due to a circular import) (/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/puput/urls.py)

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner self.run() File "/usr/lib/python3.8/threading.py", line 870, in run self._target(*self._args, **self._kwargs) File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/utils/autoreload.py", line 53, in wrapper fn(*args, **kwargs) File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/core/management/commands/runserver.py", line 118, in inner_run self.check(display_num_errors=True) File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/core/management/base.py", line 392, in check all_issues = checks.run_checks( File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/core/checks/registry.py", line 70, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/core/checks/urls.py", line 13, in check_url_config return check_resolver(resolver) File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/core/checks/urls.py", line 23, in check_resolver return check_method() File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/urls/resolvers.py", line 408, in check for pattern in self.url_patterns: File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/utils/functional.py", line 48, in get res = instance.dict[self.name] = self.func(instance) File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/urls/resolvers.py", line 589, in url_patterns patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module) File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/utils/functional.py", line 48, in get res = instance.dict[self.name] = self.func(instance) File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/urls/resolvers.py", line 582, in urlconf_module return import_module(self.urlconf_name) File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1014, in _gcd_import File "", line 991, in _find_and_load File "", line 975, in _find_and_load_unlocked File "", line 671, in _load_unlocked File "", line 783, in exec_module File "", line 219, in _call_with_frames_removed File "/home/thedern/code/python/django/test/djangox/config/urls.py", line 10, in path('blog/', include('puput.urls')), File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/urls/conf.py", line 34, in include urlconf_module = import_module(urlconf_module) File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1014, in _gcd_import File "", line 991, in _find_and_load File "", line 975, in _find_and_load_unlocked File "", line 671, in _load_unlocked File "", line 783, in exec_module File "", line 219, in _call_with_frames_removed File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/puput/urls.py", line 39, in from wagtail.admin import urls as wagtailadmin_urls File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/wagtail/admin/urls/init.py", line 104, in path(f"sprite-{get_sprite_hash()}/", home.sprite, name="wagtailadmin_sprite"), File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/wagtail/admin/urls/init.py", line 95, in get_sprite_hash content = str(home.sprite(None).content, "utf-8") File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/wagtail/admin/views/home.py", line 224, in sprite return HttpResponse(icons()) File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/wagtail/admin/views/home.py", line 219, in icons _icons_html = render_to_string("wagtailadmin/shared/icons.html", {'icons': all_icons}) File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/template/loader.py", line 61, in render_to_string template = get_template(template_name, using=using) File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/template/loader.py", line 12, in get_template engines = _engine_list(using) File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/template/loader.py", line 66, in _engine_list return engines.all() if using is None else [engines[using]] File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/template/utils.py", line 90, in all return [self[alias] for alias in self] File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/template/utils.py", line 90, in return [self[alias] for alias in self] File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/template/utils.py", line 81, in getitem engine = engine_cls(params) File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/template/backends/django.py", line 25, in init options['libraries'] = self.get_templatetag_libraries(libraries) File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/template/backends/django.py", line 43, in get_templatetag_libraries libraries = get_installed_libraries() File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/template/backends/django.py", line 108, in get_installed_libraries for name in get_package_libraries(pkg): File "/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/django/template/backends/django.py", line 123, in get_package_libraries raise InvalidTemplateLibrary( django.template.library.InvalidTemplateLibrary: Invalid template library specified. ImportError raised when trying to load 'puput.templatetags.puput_tags': cannot import name 'get_entry_url' from partially initialized module 'puput.urls' (most likely due to a circular import) (/home/thedern/code/python/django/test/djangox/venv/lib/python3.8/site-packages/puput/urls.py)

    opened by thedern 8
  • relation

    relation "wagtailcore_page" does not exist

    It's not a bug, it's a problem caused by me, and I would be grateful if someone can help me.

    I am using django-1.11 and postgresql database. I wanted to implement blog using puput django package. I have deleted all the tables for wagtail and puput (a big mistake). Now when I run puput_initial_data I get the following error:

    Traceback (most recent call last):
      File "manage.py", line 22, in <module>
        execute_from_command_line(sys.argv)
      File "/home/ubuntu/.local/lib/python3.5/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line
        utility.execute()
      File "/home/ubuntu/.local/lib/python3.5/site-packages/django/core/management/__init__.py", line 355, in execute
        self.fetch_command(subcommand).run_from_argv(self.argv)
      File "/home/ubuntu/.local/lib/python3.5/site-packages/django/core/management/base.py", line 283, in run_from_argv
        self.execute(*args, **cmd_options)
      File "/home/ubuntu/.local/lib/python3.5/site-packages/django/core/management/base.py", line 330, in execute
        output = self.handle(*args, **options)
      File "/home/ubuntu/.local/lib/python3.5/site-packages/puput/management/commands/puput_initial_data.py", line 20, in handle
        rootpage = Page.objects.first()
      File "/home/ubuntu/.local/lib/python3.5/site-packages/django/db/models/manager.py", line 85, in manager_method
        return getattr(self.get_queryset(), name)(*args, **kwargs)
      File "/home/ubuntu/.local/lib/python3.5/site-packages/django/db/models/query.py", line 564, in first
        objects = list((self if self.ordered else self.order_by('pk'))[:1])
      File "/home/ubuntu/.local/lib/python3.5/site-packages/django/db/models/query.py", line 250, in __iter__
        self._fetch_all()
      File "/home/ubuntu/.local/lib/python3.5/site-packages/django/db/models/query.py", line 1118, in _fetch_all
        self._result_cache = list(self._iterable_class(self))
      File "/home/ubuntu/.local/lib/python3.5/site-packages/django/db/models/query.py", line 53, in __iter__
        results = compiler.execute_sql(chunked_fetch=self.chunked_fetch)
      File "/home/ubuntu/.local/lib/python3.5/site-packages/django/db/models/sql/compiler.py", line 894, in execute_sql
        raise original_exception
      File "/home/ubuntu/.local/lib/python3.5/site-packages/django/db/models/sql/compiler.py", line 884, in execute_sql
        cursor.execute(sql, params)
      File "/home/ubuntu/.local/lib/python3.5/site-packages/django/db/backends/utils.py", line 65, in execute
        return self.cursor.execute(sql, params)
      File "/home/ubuntu/.local/lib/python3.5/site-packages/django/db/utils.py", line 94, in __exit__
        six.reraise(dj_exc_type, dj_exc_value, traceback)
      File "/home/ubuntu/.local/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise
        raise value.with_traceback(tb)
      File "/home/ubuntu/.local/lib/python3.5/site-packages/django/db/backends/utils.py", line 65, in execute
        return self.cursor.execute(sql, params)
    django.db.utils.ProgrammingError: relation "wagtailcore_page" does not exist
    LINE 1: ...d_at", "wagtailcore_page"."live_revision_id" FROM "wagtailco...
    

    Can somebody please help me?

    opened by veronicabasso 8
  • Search is only working for one tree and not searching globaly

    Search is only working for one tree and not searching globaly

    Is there a chance to change the behavior of the search function?

    In my project I have currently two pages under root with a tree of pages under /de /blog /de /de/dokumentation /de/faq

    This is the current search behavior. When I'm on the blog page and key in a search term then the search is issued like this: http://127.0.0.1:8000/blog/search/?q=searchterm

    and for the other page tree: http://127.0.0.1:8000/de/dokumentation/search/?q=searchterm http://127.0.0.1:8000/de/faq/search/?q=searchterm

    In all cases only search results are shown within the current path. So for /blog, only blog entries and in /de/dokumentation only the entries in subpages of Dokumentation.

    My expectation would be, that the search will find all entries from root. Or at least I can include different pages in the search by setting a checkbox or similar.

    opened by sebastian-muthwill 0
  • Internal Server Error: /admin/snippets/puput/category/add/

    Internal Server Error: /admin/snippets/puput/category/add/

    Django==3.2.12
    wagtail==2.15.4
    puput==1.1.3
    
    #settings
    DEBUG  = False
    STATICFILES_STORAGE = 'myproject.utils.CustomManifestStaticFilesStorage'
    

    Puput is working, i created a first blog page, all good, nothing wrong but when i navigate to /admin/snippets/puput/category/add/ i got 500 Internal server error.

    ERROR [django.request:224] Internal Server Error: /admin/snippets/puput/category/add/
    Traceback (most recent call last):
      File "/Users/myname/demo/wagtail/virtenv/lib/python3.9/site-packages/django/contrib/staticfiles/storage.py", line 88, in hashed_name
        raise ValueError("The file '%s' could not be found with %r." % (filename, self))
    ValueError: The file 'wagtailadmin/css/panels/rich-text.css' could not be found with <myproject.utils.CustomManifestStaticFilesStorage object at 0x7f96ac695fd0>.
    
    #utils.py
    class CustomManifestStaticFilesStorage(ManifestStaticFilesStorage):
        manifest_strict = False
    

    And i've tried manifest_strict = False, still no luck.

    opened by tamhv 0
  • Is markdown supported ?

    Is markdown supported ?

    I want to draft blog posts using Markdown, and wonder if wagtail-markdown is supported or not? Based on this URL, it seems that there is a branch support Markdown, but I do not know how to install that specific branch when deploying via docker-compose YAML file.

    any advice please ?

    opened by tian-yan 1
  • Unable to relate entry between blogs

    Unable to relate entry between blogs

    It's possible to relate an entry between blogs, but the entry url in puput/related_entries.html cannot be rendered correctly. I think it's because puput.urls.get_entry_url resolves the blog path from blog_page . If I replace blog_page.specific below with entry.blog_page , it seems to work fine.

    https://github.com/APSL/puput/blob/c991d895c9c0c1facd02a5faa653d0953d6c96aa/puput/urls.py#L81

    In case that Blog pages have Root page as parent, the hostname doesn't change according to a related entry so won't work too.

    Am I right?

    opened by hiroki-sawano 0
  • How to include extended fields in the blog search

    How to include extended fields in the blog search

    Hi https://puput.readthedocs.io/en/latest/extending.html Extended the EntryPage model as NewEntryPage with few fields. How to include extended fields (NewEntryPage Model) to Blog search? Its working only based on EntryPage model search fields?

    opened by mjagesh 0
Releases(1.2.0)
Owner
APSL
Web, mobile apps and DevOps mostly in Python, Django, JavaScript and Go.
APSL
A plugin for Wagtail CMS, to have Icon Blocks (Fontawesome support)

WAGTAIL ICONIFY Library developed for Wagtail CMS, its purpose is to provide icon blocks from various libraries Special thanks to Alex Gleason, as wel

null 2 Jun 7, 2022
Simple yet powerful and really extendable application for managing a blog within your Django Web site.

Django Blog Zinnia Simple yet powerful and really extendable application for managing a blog within your Django Web site. Zinnia has been made for pub

Julien Fache 2.1k Dec 24, 2022
django blog - complete customization and ready to use with one click installer

django-blog-it Simple blog package developed with Django. Features: Dynamic blog articles Blog pages Contact us page (configurable) google analytics S

MicroPyramid 220 Sep 18, 2022
Journey is a journaling app where users can create their own journal and entries in it!

Journey is a journaling app where users can create their own journal and entries in it!

Hieu Ma 8 Dec 12, 2021
Backend routes and database for an abstract theoretical app that relates a database of courses, users, and assignments.

Backend routes and database for an abstract theoretical app that relates a database of courses, users, and assignments.

Sean Wiesner 0 Dec 27, 2021
A Django-based CMS with a focus on extensibility and concise code

FeinCMS - An extensible Django-based CMS When was the last time, that a pre-built software package you wanted to use got many things right, but in the

FeinCMS 847 Jan 7, 2023
CMS framework for Django

Created by Stephen McDonald Overview Mezzanine is a powerful, consistent, and flexible content management platform. Built using the Django framework,

Stephen McDonald 4.6k Dec 29, 2022
A Django content management system focused on flexibility and user experience

Wagtail is an open source content management system built on Django, with a strong community and commercial support. It's focused on user experience,

Wagtail 13.8k Jan 1, 2023
Ella is a CMS based on Python web framework Django with a main focus on high-traffic news websites and Internet magazines.

Ella CMS Ella is opensource CMS based on Django framework, designed for flexibility. It is composed from several modules: Ella core is the main module

null 295 Oct 16, 2022
A modular, high performance, headless e-commerce platform built with Python, GraphQL, Django, and ReactJS.

Saleor Commerce Customer-centric e-commerce on a modern stack A headless, GraphQL-first e-commerce platform delivering ultra-fast, dynamic, personaliz

Mirumee Labs 17.8k Jan 7, 2023
An open source CMS, in python and integrable in Django

Python CMS based on the Django Framework

Titouan Bénard 0 Sep 10, 2021
Open Source CRM based on Django

Django-CRM Django CRM is opensource CRM developed on django framework. It has all the basic features of CRM to start with. We welcome code contributio

MicroPyramid 1.4k Dec 31, 2022
A full stack e-learning application, this is the backend using django restframework and docker.

DevsPrime API API Service backing client interfaces Technologies Python 3.9 : Base programming language for development Bash Scripting : Create conven

Nnabue Favour Chukwuemeka 1 Oct 21, 2021
Random tarot card generator + rudimentary Django CMS

TAROT JUICER This is a rudimentary Django-based CMS which dynamically presents tarot-related content placed onto unconventional but familiar contexts

Kyle Rafa Lazaro 7 Apr 26, 2022
An encylopedia that runs on Django as part of CS50w's coursework

Django Wiki As part of the CS50w course, this project aims to apply the use of Django together with HTML and CSS to replicate an encyclopedia. Require

Beckham 1 Oct 28, 2021
Django e-commerce website with Advanced Features and SEO Friendly

MyTech® - Your Technology Django e-commerce website with Advanced Features and SEO Friendly Images and Prices are only used for Demo purpose and does

null 28 Dec 21, 2022
Django CMS Project for quicksetup with minimal installation process.

Django CMS Project for quicksetup with minimal installation process.

Dipankar Chowdhury 3 Mar 24, 2022
wagtail_tenants is a Django/Wagtail app to provide multitenancy to your wagtail project.

wagtail-tenants wagtail_tenants is a Django/Wagtail app to provide multitenancy to your wagtail project. You are able to run a main Wagtail Site and f

<bbr> 11 Nov 20, 2022
Wagtail - Vue - Django : The initial environment of full-stack local dev web app with wagtail and vue

Wagtail - Vue - Django : The initial environment of full-stack local dev web app with wagtail and vue. A demo to show how to use .vue files inside django app.

Quang PHAM 2 Oct 20, 2022
Wagtail CLIP allows you to search your Wagtail images using natural language queries.

Wagtail CLIP allows you to search your Wagtail images using natural language queries.

Matt Segal 10 Dec 21, 2022