You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

35 lines
1.0 KiB

from django.db import models
from mptt.managers import TreeManager
from mptt.models import MPTTModel, TreeForeignKey
class Specialization(MPTTModel):
name = models.CharField(max_length=500)
parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True)
order = models.PositiveIntegerField()
selectable = models.BooleanField(default=True)
objects = TreeManager()
def __str__(self):
return self.name
def full_path(self):
part = self
path = part.name
while True:
if part.parent.name != '_root':
# print(part.name)
part = part.parent
path = '{} / {}'.format(part.name, path)
else:
return path
class Meta:
get_latest_by = 'order'
ordering = ['order']
verbose_name = 'Специализация'
verbose_name_plural = 'Специализации'
class MPTTMeta:
order_insertion_by = ['order', 'name']