新手:URL与django模板名称不匹配

时间:2014-01-13 01:36:42

标签: django django-templates

我正在开发我的第一个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以外的其他东西吗?

感谢您的帮助!

贝弗利

1 个答案:

答案 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')

重定向的参数是列出提案的网址名称。