Python 如何将POST数据发送到反向url

Python 如何将POST数据发送到反向url,python,django,python-2.7,http-post,Python,Django,Python 2.7,Http Post,我有HttpResponseRedirect()函数,它构造了所需的url: 我的创建视图: def create(request): entry = Char_field(field=request.POST['record']) entry.save() return HttpResponseRedirect(reverse('db:index_page',kwargs={'redirected':'true'})) HttpResponseRedirect()重定

我有
HttpResponseRedirect()
函数,它构造了所需的url:

我的
创建
视图:

def create(request):
    entry = Char_field(field=request.POST['record'])
    entry.save()
    return HttpResponseRedirect(reverse('db:index_page',kwargs={'redirected':'true'}))
HttpResponseRedirect()
重定向到的视图是:

def index(request):
    redirected = False
    template= 'app/index.html'
    try:
        if request.POST['redirected'] is 'true':
            redirected = True
    except:
        pass
    return render(request,template,{'redirected':redirected})
但是,它返回一个错误:

NoReverseMatch at /app/create/
Reverse for 'index_page' with arguments '()' and keyword arguments '{'redirected': 'true'}' not found.
URL.py:
为什么会这样?是否可以通过
reverse()
函数将
POST
数据发送到
index\u页面
视图?

这个问题实际上与POST数据无关。您只是试图使用一个参数进行反向操作,但是
索引页面的URL不接受一个参数。无论您是否想发布到该URL,这都是事实

然后,当然,您实际上并不发布到该URL,您只需返回HttpResponseRedirect,它执行302重定向

我不知道你为什么认为你需要在帖子中使用这个参数。如果您不想将其放在URL模式中,为什么不只放在GET参数中呢

url = reverse('db:index_page') + '?redirected=true'
return HttpResponseRedirect(url)
在接收视图中:

redirect = request.GET.get('redirected')

这个问题实际上与POST数据无关。您只是试图使用一个参数进行反向操作,但是
索引页面的URL不接受一个参数。无论您是否想发布到该URL,这都是事实

然后,当然,您实际上并不发布到该URL,您只需返回HttpResponseRedirect,它执行302重定向

我不知道你为什么认为你需要在帖子中使用这个参数。如果您不想将其放在URL模式中,为什么不只放在GET参数中呢

url = reverse('db:index_page') + '?redirected=true'
return HttpResponseRedirect(url)
在接收视图中:

redirect = request.GET.get('redirected')

显示您的
URL.py
以及
db:index\u page
的定义。非常清楚:
index\u name
在URL定义中没有任何参数,因此
reverse
无法找到位置并抛出错误。@matthia这就是问题所在,我正试图通过
reverse
POST
请求的形式发送数据function@KDawG嗯,您不能这样做,因为这样您需要更改头。HTTP重定向不能包含POST数据。有关详细信息和可能的解决方案,请参见Show us your
URL.py
,其中包含
db:index\u page
的定义。非常清楚:
index\u name
不接受URL定义中的任何参数,因此
reverse
无法找到位置并抛出错误。@Matthias这就是重点,我正试图通过
reverse
POST
请求的形式发送数据function@KDawG嗯,您不能这样做,因为这样您需要更改头。HTTP重定向不能包含POST数据。有关详细信息和可能的解决方案,请参阅