Gustavo Picon is sharing code with you

Bitbucket is a code hosting site. Unlimited public and private repositories. Free for small teams.

Don't show this again

tabo / django-treebeard

Efficient tree implementations for Django 1.0+ :: https://tabo.pe/projects/django-treebeard/

Clone this repository (size: 602.0 KB): HTTPS / SSH
hg clone https://bitbucket.org/tabo/django-treebeard
hg clone ssh://hg@bitbucket.org/tabo/django-treebeard

django-treebeard / tbexample / models.py

commit
0f2a87d336ee
parent
f45c785ede80
parent
b38bf3705bca
branch
1.6.X

merging from 1.61 tag to 1.6.X branch

1
dc6379f01920
# -*- coding: utf-8 -*-
2
dc6379f01920
"""
3
dc6379f01920
4
dc6379f01920
    tbexample.models
5
dc6379f01920
    ----------------
6
dc6379f01920
7
dc6379f01920
    django-treebeard - models for the example app
8
dc6379f01920
9
c248f8ed1896
    :copyright: 2008-2010 by Gustavo Picon
10
dc6379f01920
    :license: Apache License 2.0
11
dc6379f01920
12
dc6379f01920
"""
13
dc6379f01920
14
dc6379f01920
from django.db import models
15
dc6379f01920
16
dc6379f01920
from treebeard.mp_tree import MP_Node
17
dc6379f01920
from treebeard.al_tree import AL_Node
18
dc6379f01920
from treebeard.ns_tree import NS_Node
19
dc6379f01920
20
dc6379f01920
21
dc6379f01920
class MP_Post(MP_Node):
22
dc6379f01920
    author  = models.CharField(max_length=255)
23
dc6379f01920
    comment = models.TextField()
24
dc6379f01920
    #created = models.DateTimeField(auto_now_add=True)
25
dc6379f01920
    # Exception Value: Cannot use None as a query value
26
dc6379f01920
    created = models.DateTimeField(editable=False)
27
dc6379f01920
28
dc6379f01920
    node_order_by = ['created']
29
dc6379f01920
30
dc6379f01920
    @models.permalink
31
dc6379f01920
    def get_absolute_url(self):
32
dc6379f01920
        return ('node-view', ('mp', str(self.id),))
33
dc6379f01920
34
11d2c27832ed
    def __unicode__(self):
35
11d2c27832ed
        return u'MP_Post %d: %s' % (self.id, self.comment)
36
11d2c27832ed
37
11d2c27832ed
    class Meta:
38
11d2c27832ed
        verbose_name = 'Materialized Path Tree Post'
39
11d2c27832ed
40
11d2c27832ed
        # when adding a custom Meta class to a MP model, the ordering must be
41
11d2c27832ed
        # set again
42
11d2c27832ed
        ordering = ['path']
43
11d2c27832ed
44
dc6379f01920
MP_Post._meta.get_field('path').max_length = 255
45
dc6379f01920
46
dc6379f01920
47
dc6379f01920
class AL_Post(AL_Node):
48
dc6379f01920
    author  = models.CharField(max_length=255)
49
dc6379f01920
    comment = models.TextField()
50
dc6379f01920
    #created = models.DateTimeField(auto_now_add=True)
51
dc6379f01920
    # Exception Value: Cannot use None as a query value
52
dc6379f01920
    created = models.DateTimeField(editable=False)
53
dc6379f01920
54
dc6379f01920
    parent = models.ForeignKey('self',
55
dc6379f01920
                               related_name='children_set',
56
dc6379f01920
                               null=True,
57
dc6379f01920
                               db_index=True)
58
dc6379f01920
    node_order_by = ['created']
59
dc6379f01920
60
dc6379f01920
    @models.permalink
61
dc6379f01920
    def get_absolute_url(self):
62
dc6379f01920
        return ('node-view', ('al', str(self.id),))
63
dc6379f01920
64
11d2c27832ed
    def __unicode__(self):
65
0aec6b6f60bc
        return u'AL_Post %d: %s' % (self.id, self.comment)
66
11d2c27832ed
67
11d2c27832ed
    class Meta:
68
11d2c27832ed
        verbose_name = 'Adjacenty List Tree Post'
69
11d2c27832ed
70
dc6379f01920
71
dc6379f01920
class NS_Post(NS_Node):
72
dc6379f01920
    author  = models.CharField(max_length=255)
73
dc6379f01920
    comment = models.TextField()
74
dc6379f01920
    #created = models.DateTimeField(auto_now_add=True)
75
dc6379f01920
    # Exception Value: Cannot use None as a query value
76
dc6379f01920
    created = models.DateTimeField(editable=False)
77
dc6379f01920
78
dc6379f01920
    node_order_by = ['created']
79
dc6379f01920
80
dc6379f01920
    @models.permalink
81
dc6379f01920
    def get_absolute_url(self):
82
dc6379f01920
        return ('node-view', ('ns', str(self.id),))
83
dc6379f01920
84
11d2c27832ed
    def __unicode__(self):
85
0aec6b6f60bc
        return u'NS_Post %d: %s' % (self.id, self.comment)
86
11d2c27832ed
87
11d2c27832ed
    class Meta:
88
11d2c27832ed
        verbose_name = 'Nested Set Tree Post'
89
11d2c27832ed
90
11d2c27832ed
        # when adding a custom Meta class to a NS model, the ordering must be
91
11d2c27832ed
        # set again
92
11d2c27832ed
        ordering = ['tree_id', 'lft']