【问题标题】:Django can't figurout how to pass paramater from urlDjango 无法弄清楚如何从 url 传递参数
【发布时间】:2017-09-28 01:41:21
【问题描述】:

我正在尝试从 url 传递参数。我已经尝试了很多教程,但无法弄清楚我做错了什么。 我来自 url.py 的网址:

url(r'^reports/(?P<test>\d+)/$', views.reports,name='reports'), # report view

view.py 中我的观点:

def reports(request, test=0 ):
    title = "Reports" # title shown in browser window
    view ="admin/pc/reports.html"# where is the page view
    user_name = request.user.get_username() #User name
    return render(request, 'admin/home.html', {"title":title,"USER_NAME" : user_name,"page" : view, 'pid':test})

还有我的模板:

{% block content %}
REPORTSz id = {{pid }}
{% endblock %}

但无论我做什么,我总是得到:

带有参数“()”和关键字参数“{}”的“报告”反向 未找到。尝试了 1 种模式:['admin/reports/(?P\d+)/$']

所以我的问题是如何正确地从 url 传递参数?

【问题讨论】:

  • 哪一行会产生这个错误?看起来您正在使用 reverse() 函数并且没有传递必需的参数 (test)
  • 它说:在模板 ...\templates\admin\home.html 中,第 0 行出现错误,我的导航链接如下所示:
  • 报告
  • ,据我所知,它应该去报告 test=0

标签: python django django-urls


【解决方案1】:

在Django模板的url标签中,你需要传递你的test参数:

href="{% url "reports" test="some_value" %}"

因为您的网址中需要test 参数。

【讨论】:

  • 谢谢,这让我头疼了一个星期
猜你喜欢
相关资源
最近更新 更多
热门标签