Как установить URL-адрес для просмотра с помощью Wagtail? - PullRequest
0 голосов
/ 27 мая 2020

Трясогузка использует только ярлык на вкладке «Продвижение», или мне следует установить URL-адрес в urls.py?

Я использую трясогузку, у меня 2 страницы:

a) Министр ios Internacionales Elim
b) Doctrina Elim

Я хочу установить a в качестве домашней страницы и b на:

http://127.0.0.1:8000/doctrina-elim/

enter image description here

Сейчас doctrina/urls.py пусто: (

У меня эта модель в doctrina/models.py:

class DoctrinaIndexPage(Page):

    template = 'doctrina/doctrina_index_page.html'

    nivel = models.CharField(max_length=255, default='Básico')

    subtitle = models.CharField(max_length=255, default='Publicación reciente')

    body = RichTextField(blank=True)

    content_panels = Page.content_panels + [
        FieldPanel('subtitle', classname="full"),
        FieldPanel('body', classname="full")
    ]

Это представление (doctrina / views.py) :

from django.shortcuts import render

# Create your views here.
def home_page(response):
    return render(response, "home/home_page.html")


# Create your views here.
def doctrina_index_page(response):
    return render(response, "doctrina/doctrina_index_page.html")

В promote tab он имеет этот URL:

doctrina-elim

Но ввод этого после имени хоста дает 404, почему?

enter image description here

Структура:

-doctrina
    |__pycache.py_
    |__migrations.py
    |__templates
    |___init__.py
    |_admin.py
    |_apps.py
    |_models.py
    |_test.py
    |_urls.py
    |_views.py

-elim
     |__pycache_.py
     |_settings.py
     |_static
     |_templates
     |___init__.py
     |_urls.py
     |_wsgi.py
-home
     |__pycache_.py
     |_migrations.py
     |_static
     |_templates \ home
        |_home_page.html
        |_welcome_page.html
     |___init__.py 
     |_models.py
     |_urls.py
     |_views.py

Я могу получить доступ к своим моделям страниц, только установив их как сайты, и посетить "/ "дом.

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Как упоминалось в Как установить URL-адрес для просмотра с помощью Wagtail? , страница doctrina-elim должна быть ДЕТСКОЙ страницей домашней страницы.

Это можно сделать из листинг страницы ( эта страница ), щелкнув «Еще» под страницей, затем «Переместить».

Если вы этого не сделаете, трясогузка не будет считать ее принадлежащей тот же сайт.

0 голосов
/ 27 мая 2020

С Wagtail вы, вероятно, обнаружите, что в вашем views.py файле не так много. Скорее вы создаете ссылки для перехода на страницу, а затем Wagtail обслуживает страницу - вам не нужно отображать ее из представления, как вы это делаете. Вот пример кода того, как вы можете отобразить панель навигации:

{% load wagtailcore_tags %}

<ul>
    {% for item in request.site.root_page.get_children.live.in_menu %}
        <li>
            <a href="{% pageurl item %}">{{ item.title }}</a>
        </li>
    {% endfor %}
</ul>

Этот код показывает только одноуровневое меню / дерево страниц (не подменю), и он не показывает применение имя класса для обозначения активного пункта меню - оно показывает только основы создания меню. В заключение: в то время как в Django вы визуализируете и создаете связанный контекст из views.py, Wagtail заботится о рендеринге страницы без необходимости чего-либо в views.py. Однако, если вам нужно добавить контекст на страницу трясогузки, определите для страницы get_context(self, request): https://docs.wagtail.io/en/latest/topics/pages.html#customising -template-context .

...