Передать список элементов через URL для просмотра - PullRequest
0 голосов
/ 25 июля 2010

У меня есть список элементов, который выглядит следующим образом: 'Item 1', 'Item 2', 'Item 3'... со списком, который имеет динамическую длину.

У меня вопрос, как я могу передать эту переменную в мое представление?

Редактировать 1 Просто подумал, что уточнить, что я пытался:

return HttpResponseRedirect(reverse('newFeatures', 
       kwargs={'stock_number': stock_number, 'new_features': new_features}))

с new_features моим динамическим списком и newFeatures представлением, которое начинается следующим образом:

def add_new_feature(request, stock_number, new_features):

Не уверен, имеет ли это смысл, но я надеюсь, что это поможет вытащить меня из тьмы

Ответы [ 2 ]

0 голосов
/ 25 июля 2010

Как насчет:

return HttpResponseRedirect(reverse('newFeatures', 
    kwargs={'stock_number': stock_number, 'new_features': ','.join(new_features)}))

и

def add_new_feature(request, stock_number, new_features_str):
    new_features = new_features_str.split(',')

Предполагается, что элементы в new_features состоят только из символов, безопасных для URL-адресов, и не содержат запятых. Если это не так, вам придется выполнить экранирование какой-либо формы.

Имейте в виду, что для URL-адресов в стиле GET не рекомендуется изменять состояние своих целей. Для этого вы должны использовать POST, что помешает вам передавать параметры через URL (то есть через reverse()). Кроме того, иногда серверы имеют ограничения по длине URL, что может помешать GET.

0 голосов
/ 25 июля 2010

HttpResponseRedirect просто возвращает ответ HTTP 302 о перенаправлении, который перенаправляет на другой URL.Вы не можете отправлять POST-данные любого типа с помощью перенаправления, поэтому, если вы хотите включить какие-либо переменные, они должны быть частью URL-адреса, на который вы перенаправляете.

Если вы настаиваете на том, чтобы не обрабатывать список перед перенаправлением, тогдаЛучшим вариантом, вероятно, будет преобразование списка в строку и использование его в качестве параметра в URL.Функция newFeatures может затем проанализировать эту строку обратно в список элементов.

...