Django Url模式(添加参数)和视图

时间:2017-06-02 02:51:42

标签: django

有urls.py模式。

    url(r'^notice/(?P<article>[0-9]\d+)/', web.views.notice),

这是views.py

def notice(request, article):
    data = article
return render(request, "notice.html")

然而,网络浏览器显示404错误。 如果我删除添加参数,则没问题。

我错了什么?

预期结果(博客样式,不是参数) / notice / 1,/ notice / 2,...

3 个答案:

答案 0 :(得分:1)

我认为正在发生的事情是[0-9]\d+期待至少一个2位数字,[0-9]的一位数,然后是\d+之后的一位或多位数字。我相信你真正想要的只是

url(r'^notice/(?P<article>\d+)$', 'web.views.notice')

答案 1 :(得分:0)

我不知道你为什么使用d ???

url(r'^issue/(?P<issue_id>[0-9]+)$', views.issue, name='issue'),
url(r'^project/(?P<pk>.*)$', login_required(views.ProjectView.as_view()), name='project'),

答案 2 :(得分:0)

根据您提出的问题,我发现您希望根据URL中传递的参数在模板上显示数据。让我尝试逐步解释:

  1. 首先让我们说你有以下网址:

    url(r&#39; ^ notice /(?P <article> \ d +)$&#39;,views.notice,name =&#34; notice&#34;)

  2. 现在让我们根据URL中的参数定义从模型中获取数据的视图,我假设您在URL中传递了PK:

    def notice(请求,文章):

    data = YourModelName.objects.get(id = article)

    //将结果传回模板

    上下文= {&#34;物品&#34;:数据}

    返回渲染(请求,&#34; notice.html&#34;,上下文)

  3. 现在,您可以在模板中访问数据:

    {{article.field_name}}

  4. 希望这会帮助你!!!!