После отладки исходный код обнаружил это рядом с простым тегом slugurl .
@register.simple_tag(takes_context=True)
def slugurl(context, slug):
"""Returns the URL for the page that has the given slug."""
page = Page.objects.filter(slug=slug).first()
if page:
# call pageurl() instead of page.relative_url() here so we get the ``accepts_kwarg`` logic
return pageurl(context, page)
1: Какова точная разница между slugurl
и pageurl
?
Оба slugurl
и pageurl
являются тегами
slugurl
принимают строку slug в качестве ввода, где pageurl
принимает объект страницы на входе.
ПРИМЕЧАНИЕ: slugurl
внутренне вызовите pageurl
, если страница найдена с упомянутым фрагментом строки.
2: Почему возвращается slugurl Нет .?
Если вы передаете какую-либо строку (скажем 'привет') в slugurl, то строка должна быть слагом любого Page
page = Page.objects.filter(slug=slug).first()
Если упомянутая строка не назначена в качестве фрагмента страницы, метод вернет None
В случае, если вы столкнулись с проблемой None с slugurl
, выполните следующие два простых шага.:
1: Во-первых, убедитесь, что на вашей странице есть упомянутое слаг или нет.
2: В противном случае создайте страницу и назначьте ту же строку слагов в слаге вновь создаваемой страницы.