如何在django中的视图之间传递列表

时间:2011-06-20 19:03:37

标签: python django

我在一个视图中有一个列表,我希望将其传递给另一个要解析的视图。 这就是我现在拥有的。 意见:

def view1(request):
    if request.method=='POST':
        list = request.POST.values()
        HttpResponseRedirect('/urls/'+ str(list)) 

def view2(request, *list):
    #do something with list

网址:

urlpatterns = patterns('',
    url(r'^urls/$', views.view1),
    url(r'^urls/(?P<list>[-/\w]+)$', views.view2),
)

所以问题是:

  1. 如何构建网址正则表达式以识别列表
  2. 如何将列表与HttpResponseRedirect中其余的url连接起来以便它可以读取
  3. 我如何在第二个视图中传递列表(我依旧记得使用*上次我这样做但我找不到任何有用的参考资料)
  4. 编辑: 在更广泛的层面上,我有一个模板和视图,它提供表单中的对象列表。每个对象都由一个复选框选中。我有第二个视图和模板,显示第一个视图中所选对象的数据。我希望选择的对象数量不是有限的或有限的,但这可能不是一个选项。

2 个答案:

答案 0 :(得分:0)

正如布兰登所说,发布到第二个视图是一个有用的解决方案。 有点像:

def view2(request):
    if request.method == 'POST':
        page_list=request.POST.values()
    else:
        HttpResponseRedirect('/urls/')

然后在网址中不需要正则表达式

答案 1 :(得分:0)

  

我希望所选对象的数量不是有限的或有限的,但这可能不是一种选择。

绝对是一种选择。捕获将某个单词作为单个注册表发布的所有内容,并将其解析为视图中的不同“标记”。