我正在开发我的第一个django应用程序,我在文档中找不到任何解释这一点的内容。
我有一个名为submit_proposal的视图。如果成功,它将相关对象存储到数据库,然后将用户发送到所有打开的提议的列表。它显示正确,但浏览器不显示列表页面URL。
以下是代码:
context = RequestContext(request,
dict(user_name=gc_user.get_full_name,
game_list=game_list,
POSTData=request.POST,
)
)
template = loader.get_template('user_proposals.html')
return HttpResponse(template.render(context))
这是从submit_proposal调用的,它会依次传回返回的HttpResponse对象:
result = user_proposals(request)
return result
我在调试器中查看了结果,据我所知,它不包含从模板名称生成的URL。我应该做其他事情来创建响应吗?或者我需要使用除HttpResponse以外的其他东西吗?
感谢您的帮助!
贝弗利
答案 0 :(得分:0)
在Django中执行此操作的最常见方法是使用两个URL,例如:
urlpatterns = patterns('',
url(r'^proposal/$', 'app.views.submit_proposal', name='submit_proposal'),
url(r'^proposal/all/$', 'app.views.list_proposals', name='list_proposals'),
如果成功,submit_proposal
函数应验证,存储用户并将其重定向到list_proposals
from django.shortcuts import redirect
def submit_proposal(request):
...
return redirect('list_proposals')
重定向的参数是列出提案的网址名称。