Трясогузка: метод программного создания прямого дочернего URL с текущей страницы - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь построить панель навигации на основе фрагмента. Все ссылки, содержащиеся в этой панели навигации, относятся к дочерним страницам, имена которых будут одинаковыми в каждом экземпляре этого фрагмента, например:

Parent
    Page1
    Page2
    Page3

Я хочу, чтобы каждая ссылка создавалась с использованием URL текущей страницы. он находится в сочетании с дочерней страницей, например /Path/to/Parent/Page1. Имя дочерних страниц останется непротиворечивым, но страницы родительских имен будут изменены. Он должен содержаться в структуре фрагмента данных, чтобы я мог реплицировать его во все, что я делаю, поэтому я строю его в файле html следующим образом:

{% extends "base.html" %}
{% load wagtailcore_tags %}
{% block content %}
    <p><a href="{% pageurl page.Page1 %}">About this project</a></p>
{% endblock %}

В частности, я не знаю как отформатировать ссылку href, чтобы правильно ссылаться на указанные c подстраницы, оттуда я могу расширить эту единственную ссылку на все ссылки на дочерние страницы, по которым я хочу перейти таким образом. Ниже приведена копия того, что существует в моем файле models.py, относящемся к этому разделу. Я проследовал за документацией / другими публикациями и нашел ниже функцию URL страницы возврата, но я не знаю, как ее правильно включить.

@register_snippet
class Navbar(models.Model):
    url = models.URLField(null=True, blank=True)
    text = models.CharField(max_length=255)

    panels = [
        FieldPanel('url'),
        FieldPanel('text'),
    ]

    def __str__(self):
        return self.text


class PageUrl(Page):

    def returnPageUrl(self):
        return self.get_url()

Идеальное решение: Простой метод форматирования ссылок href для ссылки на дочерние страницы, которые будут иметь одинаковую структуру имен на всех страницах, в которые добавлен фрагмент, содержащий эту структуру.

РЕДАКТИРОВАТЬ: Я нашел решение, которое использует следующую структуру в ссылке href:

<p><a href="././Page1">Page1</a></p>

Где каждый. ссылался на предыдущий родительский уровень, пока он не совпадал с дочерней страницей, которую я хотел. Однако, учитывая, что это зависит от того, останется ли моя структура трясогузки неизменной, если я смогу удалить эту зависимость, я все равно буду очень признателен за ответ.

...