Как передать значение из одного представления Django в другое представление?
У меня есть значение - полученное после сохранения формы Django. После сохранения формы я перенаправляю приложение Django на другой вид. Вместе с перенаправлением в другое представление я хочу передать значение, которое было в предыдущем представлении
Как это можно сделать - передать значение из одного представления Django в другое представление?
Я пытаюсь сделать это по очереди, но получаю ошибку.
Если у вас есть возможность, я буду благодарен за любую информацию или помощь.
view_1
def form_1(request):
context = {}
form_2 = Form_new_form1_1(request.POST or None)
if form_2.is_valid():
model_instance = form_2.save(commit=False)
values_name = model_instance.name
nm_kot = values_name
request.session['nm_kot'] = nm_kot
return redirect("form_1_2")
context['form_2'] = form_2
return render(request, "form_1.html", context)
view_2
def form_1_2(request):
context = {}
nm_kot = request.session['nm_kot']
nomer = nm_kot
name = nomer
return redirect("tabl_1")
error
response = self.process_response(request, response)
raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type Model_Model is not JSON serializable
[05/Feb/2023 18:00:20] "POST /zamer_form_1 HTTP/1.1" 500 114735
Django session использует по умолчанию json сериализацию и поэтому вам нужно будет сериализовать ваши данные в json.
Я не рекомендую переходить на pickle, который решит вашу проблему, но не рекомендуется.
Вы можете использовать json.dumps и json.loads для сериализации и десериализации данных.
https://docs.djangoproject.com/en/4.1/topics/http/sessions/#session-serialization
https://docs.djangoproject.com/en/4.1/topics/http/sessions/#examples