def flatpage(request, url):
    """
    Public interface to the flat page view.

    Models: `flatpages.flatpages`
    Templates: Uses the template defined by the ``template_name`` field,
        or `flatpages/default.html` if template_name is not defined.
    Context:
        flatpage
            `flatpages.flatpages` object
    """

    if not url.startswith('/'):
        url = '/' + url

    language = request.LANGUAGE_CODE
    language_prefix = '/%s' % language
    language_db_field = language.replace('-', '_')

    if url.startswith(language_prefix):
        url = url[len(language_prefix):]

    kwargs = {
        '{0}__{1}'.format('url_%s' % language_db_field, 'exact'): url,
        '{0}__{1}'.format('sites__id', 'exact'): settings.SITE_ID
    }

    try:
        f = get_object_or_404(FlatPage_i18n, **kwargs)
    except Http404:
        if not url.endswith('/') and settings.APPEND_SLASH:
            url += '/'
            f = get_object_or_404(FlatPage_i18n, **kwargs)
            return HttpResponsePermanentRedirect('%s/' % request.path)
        else:
            raise

    return render_flatpage(request, f)
Public interface to the flat page view.

    Models: `flatpages.flatpages`
    Templates: Uses the template defined by the ``template_name`` field,
        or `flatpages/default.html` if template_name is not defined.
    Context:
        flatpage
            `flatpages.flatpages` object