Я генерирую объект из представленной формы. Я хочу передать сформированный AutoField
в следующую форму как скрытый элемент формы. Однако я не могу понять, как передать переменную от post()
до get_context_data()
. Я знаю, что сначала вызывается post()
, а затем get_context_data()
, но добавление переменной в self
не дает ожидаемых результатов (атрибут не существует на self
).Передача данных из post() в get_context_data()
Вот пример того, что я испытываю:
def get_context_data(self, **kwargs):
context = super(MyView, self).get_context_data(**kwargs)
print self.hello
return context
def post(self, request, *args, **kwargs):
self.hello = "hello"
return HttpResponseRedirect(request.path)
self.hello
не действует при вызове в get_context_data
. Мне кажется, что я ошибаюсь в вызове HttpResponseRedirect(request.path)
, но я не уверен, как еще визуализировать шаблон.
Является ли это простой ошибкой, или я должен приближаться к этому совершенно по-другому?
'get_context_data()' выполняется только для запросов 'GET' (при условии, что вы используете' FormView'), а не для 'POST'-запросов, обрабатываемых' post() '. 'get_context_data()' используется для получения контекста шаблона, который является избыточным, если вы просто перенаправляете в любом случае. Можете ли вы объяснить, что именно вы пытаетесь достичь? – solarissmoke
Я создаю один объект из нескольких форм. Form1 отправляется на страницу Form2. Я создаю половину объекта в 'post()' Form2 и хотел бы иметь возможность отправить Form2 на целевую страницу, где объект завершен. Мне нужно знать, какой объект создается, поэтому я подумал, что захвачу «AutoField», сгенерированный в первом post(), и передать его как скрытое поле в Form2, чтобы обновление на целевой странице post() 'получит доступ к правильному объекту. Я уверен, что есть лучший способ, и я открыт для предложений. (Кроме FormWizard. Это альтернатива этому по причинам ...) – Tyler
Вы можете использовать сеансы для хранения этих данных между представлениями? – solarissmoke