代码之家  ›  专栏  ›  技术社区  ›  geejay

教程中的django httpresponseredirect反向函数

  •  4
  • geejay  · 技术社区  · 15 年前

    有人能解释一下这是怎么回事吗? Django Tutorial Part 4

    具体来说,map函数是如何工作的?

    我理解URL不应该在视图函数中进行硬编码。

    return HttpResponseRedirect(reverse('mysite.polls.views.results', args=(p.id,)))
    
    2 回复  |  直到 15 年前
        1
  •  7
  •   Ned Batchelder    15 年前

    这个 reverse 函数可以访问Django用于查找传入URL的视图函数的URL映射。在本例中,您传递一个视图函数,它将得到参数,并找到将映射到该函数的URL。然后,httpresponseredirect函数创建一个响应,引导浏览器访问该URL。

    这是一种说法,“现在调用mysite.polls.views.results视图”。

        2
  •  1
  •   Mark Lavin    15 年前

    在Django中定义URL时,您可以选择为URL指定一个名称:url(regex,view,kwargs=none,name=none,prefix=''),例如它们的作用 in the tutorial 命名它 poll_results :

    url(r'^(?P<object_id>\d+)/results/$', 
    'django.views.generic.list_detail.object_detail',
    dict(info_dict, template_name='polls/results.html'), 'poll_results'),
    

    此模式有一个命名组: object_id . reverse函数查找名为 污染结果 及格 p.id 用于 对象编号 在URL模式中。函数返回从regex生成的URL和传递的参数。