diff options
Diffstat (limited to 'lib/python2.7/site-packages/django/contrib/flatpages/views.py')
-rw-r--r-- | lib/python2.7/site-packages/django/contrib/flatpages/views.py | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/lib/python2.7/site-packages/django/contrib/flatpages/views.py b/lib/python2.7/site-packages/django/contrib/flatpages/views.py deleted file mode 100644 index 20e930f..0000000 --- a/lib/python2.7/site-packages/django/contrib/flatpages/views.py +++ /dev/null @@ -1,72 +0,0 @@ -from django.conf import settings -from django.contrib.flatpages.models import FlatPage -from django.contrib.sites.models import get_current_site -from django.http import Http404, HttpResponse, HttpResponsePermanentRedirect -from django.shortcuts import get_object_or_404 -from django.template import loader, RequestContext -from django.utils.safestring import mark_safe -from django.views.decorators.csrf import csrf_protect - -DEFAULT_TEMPLATE = 'flatpages/default.html' - -# This view is called from FlatpageFallbackMiddleware.process_response -# when a 404 is raised, which often means CsrfViewMiddleware.process_view -# has not been called even if CsrfViewMiddleware is installed. So we need -# to use @csrf_protect, in case the template needs {% csrf_token %}. -# However, we can't just wrap this view; if no matching flatpage exists, -# or a redirect is required for authentication, the 404 needs to be returned -# without any CSRF checks. Therefore, we only -# CSRF protect the internal implementation. -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 :template:`flatpages/default.html` if template_name is not defined. - Context: - flatpage - `flatpages.flatpages` object - """ - if not url.startswith('/'): - url = '/' + url - site_id = get_current_site(request).id - try: - f = get_object_or_404(FlatPage, - url__exact=url, sites__id__exact=site_id) - except Http404: - if not url.endswith('/') and settings.APPEND_SLASH: - url += '/' - f = get_object_or_404(FlatPage, - url__exact=url, sites__id__exact=site_id) - return HttpResponsePermanentRedirect('%s/' % request.path) - else: - raise - return render_flatpage(request, f) - -@csrf_protect -def render_flatpage(request, f): - """ - Internal interface to the flat page view. - """ - # If registration is required for accessing this page, and the user isn't - # logged in, redirect to the login page. - if f.registration_required and not request.user.is_authenticated(): - from django.contrib.auth.views import redirect_to_login - return redirect_to_login(request.path) - if f.template_name: - t = loader.select_template((f.template_name, DEFAULT_TEMPLATE)) - else: - t = loader.get_template(DEFAULT_TEMPLATE) - - # To avoid having to always use the "|safe" filter in flatpage templates, - # mark the title and content as already safe (since they are raw HTML - # content in the first place). - f.title = mark_safe(f.title) - f.content = mark_safe(f.content) - - c = RequestContext(request, { - 'flatpage': f, - }) - response = HttpResponse(t.render(c)) - return response |