feat: enable translations and rest api
This commit is contained in:
parent
e98db55a16
commit
310fd5ed7a
4 changed files with 48 additions and 9 deletions
|
@ -5,6 +5,7 @@ from django.db import models
|
|||
from modelcluster.fields import ParentalKey, ParentalManyToManyField
|
||||
from modelcluster.contrib.taggit import ClusterTaggableManager
|
||||
from taggit.models import TaggedItemBase
|
||||
from wagtail.api import APIField
|
||||
|
||||
from wagtail.models import Page, Orderable
|
||||
from wagtail.fields import RichTextField, StreamField
|
||||
|
@ -74,6 +75,13 @@ class BlogPage(SeoMixin, Page):
|
|||
else:
|
||||
return None
|
||||
|
||||
# Export fields over the API
|
||||
api_fields = [
|
||||
APIField('gallery_images'),
|
||||
APIField('body'),
|
||||
APIField('intro'),
|
||||
APIField('tags'),
|
||||
]
|
||||
search_fields = Page.search_fields + [
|
||||
index.SearchField('intro'),
|
||||
index.SearchField('body'),
|
||||
|
@ -122,6 +130,9 @@ class BlogPageGalleryImage(Orderable):
|
|||
FieldPanel('image'),
|
||||
FieldPanel('caption'),
|
||||
]
|
||||
api_fields = [
|
||||
APIField('image'),
|
||||
]
|
||||
|
||||
|
||||
@register_snippet
|
||||
|
|
15
iamkonstantin_web/api.py
Normal file
15
iamkonstantin_web/api.py
Normal file
|
@ -0,0 +1,15 @@
|
|||
from wagtail.api.v2.views import PagesAPIViewSet
|
||||
from wagtail.api.v2.router import WagtailAPIRouter
|
||||
from wagtail.images.api.v2.views import ImagesAPIViewSet
|
||||
from wagtail.documents.api.v2.views import DocumentsAPIViewSet
|
||||
|
||||
# Create the router. "wagtailapi" is the URL namespace
|
||||
api_router = WagtailAPIRouter('wagtailapi')
|
||||
|
||||
# Add the three endpoints using the "register_endpoint" method.
|
||||
# The first parameter is the name of the endpoint (such as pages, images). This
|
||||
# is used in the URL of the endpoint
|
||||
# The second parameter is the endpoint class that handles the requests
|
||||
api_router.register_endpoint('pages', PagesAPIViewSet)
|
||||
api_router.register_endpoint('images', ImagesAPIViewSet)
|
||||
api_router.register_endpoint('documents', DocumentsAPIViewSet)
|
|
@ -35,6 +35,7 @@ INSTALLED_APPS = [
|
|||
"wagtail.contrib.settings",
|
||||
"wagtail.contrib.forms",
|
||||
"wagtail.contrib.redirects",
|
||||
"wagtail.contrib.simple_translation",
|
||||
"wagtail.embeds",
|
||||
"wagtail.sites",
|
||||
"wagtail.users",
|
||||
|
@ -44,6 +45,8 @@ INSTALLED_APPS = [
|
|||
"wagtail.search",
|
||||
"wagtail.admin",
|
||||
"wagtail.locales",
|
||||
"wagtail.api.v2",
|
||||
"rest_framework",
|
||||
"wagtail",
|
||||
"modelcluster",
|
||||
"taggit",
|
||||
|
@ -149,6 +152,8 @@ WAGTAIL_CONTENT_LANGUAGES = LANGUAGES = [
|
|||
('nl', "Dutch"),
|
||||
]
|
||||
|
||||
WAGTAILSIMPLETRANSLATION_SYNC_PAGE_TREE = True
|
||||
|
||||
# Static files (CSS, JavaScript, Images)
|
||||
# https://docs.djangoproject.com/en/5.0/howto/static-files/
|
||||
|
||||
|
@ -198,6 +203,9 @@ WAGTAILSEARCH_BACKENDS = {
|
|||
# Base URL to use when referring to full URLs within the Wagtail admin backend -
|
||||
# e.g. in notification emails. Don't include '/admin' or a trailing slash
|
||||
WAGTAILADMIN_BASE_URL = "https://iamkonstantin.eu"
|
||||
WAGTAILAPI_BASE_URL = "https://iamkonstantin.eu"
|
||||
|
||||
WAGTAILAPI_SEARCH_ENABLED = True
|
||||
|
||||
WAGTAIL_CODE_BLOCK_LANGUAGES = (
|
||||
('bash', 'Bash/Shell'),
|
||||
|
|
|
@ -9,6 +9,7 @@ from wagtail import urls as wagtail_urls
|
|||
from wagtail.documents import urls as wagtaildocs_urls
|
||||
|
||||
from blog.feeds import RssBlogFeed
|
||||
from iamkonstantin_web.api import api_router
|
||||
from newsletter import views as newsletter_views
|
||||
from search import views as search_views
|
||||
from wagtail.contrib.sitemaps.views import sitemap
|
||||
|
@ -26,6 +27,10 @@ urlpatterns = [
|
|||
path('newsletter/thanks', newsletter_views.thanks, name='thanks')
|
||||
]
|
||||
|
||||
urlpatterns += [
|
||||
path('api/v2/', api_router.urls),
|
||||
]
|
||||
|
||||
# Translatable URLs
|
||||
# These will be available under a language code prefix. For example /en/search/
|
||||
urlpatterns += i18n_patterns(
|
||||
|
@ -42,12 +47,12 @@ if settings.DEBUG:
|
|||
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||
urlpatterns += path("__reload__/", include("django_browser_reload.urls")),
|
||||
|
||||
urlpatterns = urlpatterns + [
|
||||
# For anything not caught by a more specific rule above, hand over to
|
||||
# Wagtail's page serving mechanism. This should be the last pattern in
|
||||
# the list:
|
||||
path("", include(wagtail_urls)),
|
||||
# Alternatively, if you want Wagtail pages to be served from a subpath
|
||||
# of your site, rather than the site root:
|
||||
# path("pages/", include(wagtail_urls)),
|
||||
]
|
||||
# urlpatterns = urlpatterns + [
|
||||
# # For anything not caught by a more specific rule above, hand over to
|
||||
# # Wagtail's page serving mechanism. This should be the last pattern in
|
||||
# # the list:
|
||||
# path("", include(wagtail_urls)),
|
||||
# # Alternatively, if you want Wagtail pages to be served from a subpath
|
||||
# # of your site, rather than the site root:
|
||||
# # path("pages/", include(wagtail_urls)),
|
||||
# ]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue