When using the redirect() shortcut, you are actually doing HttpResponseRedirect() and therefore should not include the response in your kwargs .
In addition, if you want to redirect the arguments with keywords, then the call will
redirect('/myurl/', momma="im comin' home")
or
redirect('/myurl/', kwargs={'loads_a_kwargs':'cowboy'})
The error you get is because your regexp url(r'^demo/', 'demo', name='demo') does not accept any parameters. Also, usually you should end all of your url regular expressions with $ to indicate that the capture should stop.
source share