In templates you could do something like the following:
{% url 'url_name' user.id %}
{% url 'url_name'%}?param=value
{% "/app/view/user_id" %}
In the first one, the querystring will be in the form of "http://localhost.loc/app/view/user_id"
In the second one, the query string should be in the form of "http://localhost.loc/app/view?param=value"
In the third one, it is simple however I am recommending the first one which depends on the name of the url mappings applied in urls.py
Applying this in views, should be done using HttpResponseRedirect
#using url_names
# with standard querystring
return HttpResponseRedirect( reverse('my_url') + "?param=value")
#getting nicer querystrings
return HttpResponseRedirect(reverse('my_url', args=[value]))
# or using relative path
return HttpResponseRedirect( '/relative_path' + "?param=value")
Hint: to get query string value from any other view
s = request.GET.get('param','')