【问题标题】:Passing data using redirect() + frame URL pattern in Django在 Django 中使用 redirect() + frame URL 模式传递数据
【发布时间】:2016-07-26 03:55:07
【问题描述】:

我想使用 redirect() 方法重定向到 URL 和参数

当前视图函数如下,但它没有传递任何参数

def add(request):
    # Do something
    return redirect('/register/')

我如何传递参数使用redirect()

def add(request):
    # Do something
    return redirect('/register/', {"key1": "value1"})

需要传递{"key1": "value1"}等参数

当前网址格式:

url(r'^register/$', views.index, name="register_index")

当我想将参数传递给相同的 url 时,我可以更改 URL 模式吗?

【问题讨论】:

  • redirect('/register/?key1=value1') 有什么问题?
  • 研究使用reverse
  • @DmitryB.: 还有其他方法吗?
  • @xthestreams:你能解释一下使用reverse吗?
  • @iNikkz 看这里:docs.djangoproject.com/ja/1.9/ref/urlresolvers 他们有一个很好的例子

标签: django url redirect view


【解决方案1】:

你的情况。我认为你应该使用反向,因为你没有硬编码链接,只使用更改名称 url.py 并且不要更改你的代码。

  from django.core.urlresolvers import reverse
  def add(request):
        # Do something
        return redirect('register_index')

url 有参数。我有一个例子

urls.py

  url(r'^detail/(?P<pk>\d+)/$', views.show_detail, name='author_detail'),

view.py

 def view_detail(request):
     return HttpResponseRedirect(reverse('author_detail', kwargs={'pk': self.pk}))

【讨论】:

  • @Son Lam:谢谢。但是您的代码中有一个错误。只有 reverse() 不起作用。您需要使用HttpResponseRedirect(reverse('author_detail', kwargs={'pk': self.pk}))。只需编辑您的答案。它会帮助别人,我会让你的答案正确。
  • @iNikkz:我刚刚修复。这是我的错误。谢谢
猜你喜欢
  • 2017-05-14
  • 1970-01-01
  • 2018-07-07
  • 2019-06-25
  • 2020-09-19
  • 2015-11-18
  • 1970-01-01
  • 2017-08-11
  • 2019-04-14
相关资源
最近更新 更多