Acess context from request in Django

339 Views Asked by At

How can we access the context passed in template in method views?

urls.py

urlpatterns = [
    path('', views.method_A, name='first_view'),
    path('method_B', views.method_B, name='second_view'),
]
def method_A(request):
    context = {"name":"sample"}
    html_template = loader.get_template('some_template.html')
    return HttpResponse(html_template.render(context, request))

Template as

<div>
   {{name}}
   <a href="method_B">Redirect</a>
</div>
def method_B(request):
    # Here how to get context which was present earlier
    context = {"second":"second"}
    html_template = loader.get_template('template_B.html')
    return HttpResponse(html_template.render(context, request))

How we can get context in method based views in django.? So that it can be used in another templates.

1

There are 1 best solutions below

0
On

You can store as a session variable.

Views

def method_A(request):
    html_template = loader.get_template('some_template.html')
    request.session['my_context'] = 'Example' #Setting Cookie
    return HttpResponse(html_template.render(context, request))

def method_B(request):
    # Here how to get context which was present earlier
    my_context = request.session.pop('my_context', None) # Getting Cookie
    html_template = loader.get_template('template_B.html')
    return HttpResponse(html_template.render(context, request))