将 view.py 中的值传递给 html 中的 url link

Pass a value from view.py to a url link in html

我正在学习 Django 课程的 CS50 Web 开发。

我想将一个字符串从 view.py 传递到 HTML 作为 URL link

这里是 view.py

def randompage(request, name):
random_page = random.choice(util.list_entries())
return render(request, "encyclopedia/layout.html", {
"random_page": random_page})

这是 HTML 页面

<a href="{% url 'randompage' random_page %}"> Random Page </a>

urls.py

urlpatterns = [
path("", views.index, name="index"),
path("wiki/<str:name>", views.title, name= "title"),
path("wiki/", views.randompage, name= "randompage"),
path("searchresult", views.searchresult, name= "searchresult"),
path("newpage", views.newpage, name= "newpage")

]

错误代码是

NoReverseMatch at / Reverse for 'randompage' with arguments '('',)' not found. 1 pattern(s) tried: ['wiki/$']

我知道我应该给你 templatetag URL,但我真的不明白它是如何工作的,我找不到任何人和我有类似的情况。

您可以在 HTML 模板中使用以下内容来完成此操作:

<a href="{% url 'title' randompage %}"> Random Page </a>
  • title 是来自您的 urls.py
  • 的路径名
  • randompage是参数

这里是 relevant section of the Django docs.