Как передать значение из одного представления 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

Вернуться на верх