【发布时间】:2013-11-02 07:10:57
【问题描述】:
我有 HttpResponseRedirect() 构造所需 url 的函数:
我的create 观点:
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.
urls.py:
urlpatterns = patterns('',
url(r'^$',views.index,name='index_page'),
url(r'^get_record/$',views.get_record,name='get_record'),
url(r'^create/$',views.create_html,name='create_path'),
url(r'^add/$',views.create,name='add_record')
)
为什么会这样?是否可以通过reverse() 函数将POST 数据发送到index_page 视图?
【问题讨论】:
-
向我们展示您的
urls.py以及db:index_page的定义。 -
很清楚:
index_name在 URL 定义中不带任何参数,所以reverse找不到位置并抛出错误。 -
@Matthias 这就是重点,我正在尝试通过
reverse函数将数据作为POST请求发送 -
@KDawG 好吧,你不能这样做,因为那样你就需要更改标题。
-
HTTP 重定向不能包含 POST 数据。有关详细信息和可能的解决方案,请参阅stackoverflow.com/questions/3024168/…
标签: python django python-2.7 http-post