# -*- coding: utf-8 -*-
"""
tbexample.models
----------------
django-treebeard - models for the example app
:copyright: 2008-2010 by Gustavo Picon
:license: Apache License 2.0
"""
from django.db import models
from treebeard.mp_tree import MP_Node
from treebeard.al_tree import AL_Node
from treebeard.ns_tree import NS_Node
class MP_Post(MP_Node):
author = models.CharField(max_length=255)
comment = models.TextField()
#created = models.DateTimeField(auto_now_add=True)
# Exception Value: Cannot use None as a query value
created = models.DateTimeField(editable=False)
node_order_by = ['created']
@models.permalink
def get_absolute_url(self):
return ('node-view', ('mp', str(self.id),))
def __unicode__(self):
return u'MP_Post %d: %s' % (self.id, self.comment)
class Meta:
verbose_name = 'Materialized Path Tree Post'
# when adding a custom Meta class to a MP model, the ordering must be
# set again
ordering = ['path']
MP_Post._meta.get_field('path').max_length = 255
class AL_Post(AL_Node):
author = models.CharField(max_length=255)
comment = models.TextField()
#created = models.DateTimeField(auto_now_add=True)
# Exception Value: Cannot use None as a query value
created = models.DateTimeField(editable=False)
parent = models.ForeignKey('self',
related_name='children_set',
null=True,
db_index=True)
node_order_by = ['created']
@models.permalink
def get_absolute_url(self):
return ('node-view', ('al', str(self.id),))
def __unicode__(self):
return u'AL_Post %d: %s' % (self.id, self.comment)
class Meta:
verbose_name = 'Adjacenty List Tree Post'
class NS_Post(NS_Node):
author = models.CharField(max_length=255)
comment = models.TextField()
#created = models.DateTimeField(auto_now_add=True)
# Exception Value: Cannot use None as a query value
created = models.DateTimeField(editable=False)
node_order_by = ['created']
@models.permalink
def get_absolute_url(self):
return ('node-view', ('ns', str(self.id),))
def __unicode__(self):
return u'NS_Post %d: %s' % (self.id, self.comment)
class Meta:
verbose_name = 'Nested Set Tree Post'
# when adding a custom Meta class to a NS model, the ordering must be
# set again
ordering = ['tree_id', 'lft']