Как получить доступ к указанному слагу страницы * Wagtail в шаблоне - PullRequest
0 голосов
/ 31 марта 2020

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

models.py

@register_snippet
class PageLink(models.Model):
    link_text = models.CharField(max_length=100)
    related_page = models.ForeignKey(
        'wagtailcore.Page',
        null=True,
        blank=False,
        on_delete=models.SET_NULL,
        related_name='+',
        )

    panels = [
        MultiFieldPanel(
            [
                FieldPanel('link_text'),
                PageChooserPanel('related_page'),
            ],
            heading = "Text and page",
        )
    ]

    def __str__(self):
        return self.link_text

    class Meta:
        verbose_name = "Page link"
        verbose_name_plural = "Page links"


register_snippet(PageLink)

templatetags / link_tags.py

@register.inclusion_tag("snippets/your_harmony_link.html", takes_context=True)
def links(context):
    return {
        'links': PageLink.objects.all(),
        'request': context['request'],
    }

your_harmony_link. html

{% for link in links %}
{{ link.url }} * {{ link.text }}
    <p>
        <a href="{{ link.url }}">
            {{ link.text }}
        </a>
    </p>
{% endfor %}

I Я просто хочу показать один URL здесь, но я перебираю их, чтобы убедиться, что у меня есть правильная модель. Когда страница отображается, я вижу все ссылки, как и ожидалось, но вижу только link.text , а не link.url

[EDIT] : это было решено (см. комментарий), но остается вопрос:

Как я могу получить URL для конкретной ссылки? Кажется, на PageLink нет ключа, или я что-то упустил?

...