The 2 request objects are different ; the stream you assign in twitter_start in request.session is lost after the execution of the function. Use a global variable to store the stream, eg:
global STREAM
def twitter_start(request):
global STREAM
STREAM = MyStreamer(settings.CONSUMER_KEY, settings.CONSUMER_SECRET,
settings.ACCESS_TOKEN_KEY, settings.ACCESS_TOKEN_SECRET)
# get the keywords from the models
keywords = Keys.objects.all()
STREAM.statuses.filter(track=keywords)
return HttpResponse(request)
def twitter_stop(request):
STREAM.disconnect()
return HttpResponse(request)