1234567891011121314151617181920212223242526272829303132333435 |
- from django.contrib.flatpages.models import FlatPage
- from django.template import loader, RequestContext
- from django.shortcuts import get_object_or_404
- from django.http import HttpResponse
- from django.conf import settings
- DEFAULT_TEMPLATE = 'flatpages/default.html'
- def flatpage(request, url):
- """
- 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
- f = get_object_or_404(FlatPage, url__exact=url, sites__id__exact=settings.SITE_ID)
- # 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 request.user.is_anonymous():
- 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)
- c = RequestContext(request, {
- 'flatpage': f,
- })
- return HttpResponse(t.render(c))
|