как передать список между представлениями в Django - PullRequest
1 голос
/ 20 июня 2011

У меня есть список в одном представлении, который я хотел бы передать в другое представление для анализа. Это то, что у меня сейчас есть. Просмотры:

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

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

URL-адреса:

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

так что вопросы:

  1. как мне сформировать регулярное выражение url для распознавания списка
  2. как мне объединить список с остальной частью URL в HttpResponseRedirect, чтобы он читал
  3. как передать список во втором виде (я смутно помню, как использовал * в прошлый раз, когда я сделал это, но я не смог найти полезного справочного материала)

EDIT: На более широком уровне у меня есть шаблон и представление, которые предоставляют список объектов в форме. Каждый объект выбран флажком. У меня есть второй вид и шаблон, который отображает данные для выбранных объектов из первого вида. Я хотел бы, чтобы количество выбранных объектов не было конечным или ограниченным, но это не может быть вариантом.

Ответы [ 2 ]

0 голосов
/ 21 июня 2011

Я бы хотел, чтобы количество выбранных объектов не было конечным или ограниченным, но это может быть не вариант.

Это определенно вариант.Захватите все, что публикует определенное слово как один reg-ex, и проанализируйте его по разным «тегам» в вашем представлении.

0 голосов
/ 20 июня 2011

Как предположил Брэндон, публикация во втором представлении была удобным решением.Что-то вроде:

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

, и тогда нет необходимости в регулярном выражении в URL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...