add support for page hierarchy

This commit is contained in:
Frédéric Péters 2014-12-13 13:19:34 +01:00
parent 259b65fefc
commit ac0fba548e
2 changed files with 11 additions and 1 deletions

View File

@ -34,6 +34,10 @@ class Page(models.Model):
title = models.CharField(_('Title'), max_length=50)
slug = models.SlugField()
template_name = models.CharField(max_length=50)
parent = models.ForeignKey('self', null=True, blank=True)
def __unicode__(self):
return self.title
class CellBase(models.Model):

View File

@ -15,6 +15,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.conf import settings
from django.http import Http404
from django.shortcuts import get_object_or_404, render
from combo.data.models import CellBase, Page
@ -23,7 +24,12 @@ def page(request):
parts = [x for x in request.path_info.strip('/').split('/') if x]
if not parts:
parts = ['index']
page = get_object_or_404(Page, slug=parts[0])
pages = [get_object_or_404(Page, slug=x) for x in parts]
for i, page in enumerate(pages[1:]):
if page.parent_id != pages[i].id:
raise Http404()
page = pages[-1]
ctx = {
'page': page,
'page_cells': CellBase.objects.filter(page_id=page.id