def get_full_path(request, force_append_slash=False):
    # RFC 3986 requires query string arguments to be in the ASCII range.
    # Rather than crash if this doesn't happen, we encode defensively.
    return '%s%s%s' % (
        escape_uri_path(request.path),
        '/' if force_append_slash and not request.path.endswith('/') else '',
        ('?' + iri_to_uri(request.META.get('QUERY_STRING', ''))) if request.META.get('QUERY_STRING', '') else ''
    )
Copied from django.http.request.get_full_path (django 1.9) to support
dataset/ETHPy150Open st4lk/django-solid-i18n-urls/solid_i18n/contrib.py/get_full_path