【问题标题】:How to post data with HttpResponseRedirect in Django?如何在 Django 中使用 HttpResponseRedirect 发布数据?
【发布时间】:2019-05-10 06:29:30
【问题描述】:

如何使用 HttpResponseRedirect 发布数据?

我在 Django 管理员更改表单中有一个按钮:

<input type="submit" value="Test Peer" name="_peer-test">

以及获得它的视图:

def response_change(self, request, obj): ### response
    if "_peer-test" in request.POST:  
          url = request.POST.get('obj', '/export')
          return HttpResponseRedirect(url)

第一行def response_change(self, request, obj): 有数据

所以如果我输入 obj.name 我会得到请求的数据。

我想要的是在发布信息时重定向到另一个视图。

【问题讨论】:

    标签: django django-models django-templates django-views


    【解决方案1】:

    您可以从 POST 获取数据并将其作为 GET 参数发送。见

    def response_change(self, request, obj): ### response
        if "_peer-test" in request.POST:  
              url = request.POST.get('obj', '/export')
              if url != '/export':
                  # because "obj" in variable url
                  name = url.name
                  url += "?name={}".format(name)
              return HttpResponseRedirect(url)
    

    因此您可以在需要接收它的视图中获取此值。示例:

    def reciever_view(request):
        name = request.GET.get('name','')
        # do some with name ...
    

    【讨论】:

    • 成功了!谢谢!我怎样才能一次得到所有的对象?所以我不必一个一个地定义对象
    猜你喜欢
    • 1970-01-01
    • 2014-05-31
    • 2015-09-24
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多