В настоящее время у меня реализован SessionWizardView из пакета formtools.
class DataframeFormView(SessionWizardView):
def done(self,form_list):
params={}
for form in form_list:
params.update(form.cleaned_data)
return HttpResponseRedirect(reverse('download',kwargs={'params':params}))
В представлении форм все работает нормально, и когда формы успешно заполнены, вышеупомянутая функция запускается, однако мне нужно передать аргумент params в другое представление:
from django_downloadview import VirtualDownloadView, VirtualFile
class DataframeDownloadView(VirtualDownloadView):
def get_file(self):
### Access params dictionary here!!!!
return VirtualFile(tfile.name, name=tfile.name)
То, что я пробовал:
1) переопределить __init__
, чтобы добавить self.params = kwargs.pop('params')
2) создать метод для доступа к определенным ключевым параметрам kwargs, используя return self.kwargs['params']
3) Смешанное решение (возможно, плохо реализовано, но я думаю, что в этих двух CBV есть ограничения)
В конечном счете, используя метод 1 и 2, мне удается получить доступ только к строковому представлению словаря параметров через обращение к ссылке / url /. Мне нужно более простое решение, чтобы получить оригинальный объект dict. TLDR: как я могу передавать сложные объекты между представлениями.
С уважением,