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 againdjango-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'] |