Can I call a view from within another view?

Sure, as long as when it’s all said and done your view returns an HttpResponse object. The following is completely valid:

def view1(request):
    # do some stuff here
    return HttpResponse("some html here")

def view2(request):
    return view1(request)

If you don’t want to return the HttpResponse from the first view then just store it into some variable to ignore:

def view1(request):
    # do some stuff here
    return HttpResponse("some html here")

def view2(request):
    response = view1(request)
    # do some stuff here
    return HttpResponse("some different html here")

Leave a Comment