class Example(models.Model): mptt = TreeForeignKey(Mptt, on_delete=models.CASCADE) treebeardmp = TreeForeignKey(Treebeardmp, on_delete=models.CASCADE, settings={ 'show_buttons': True, 'filtered': True }) treebeardal = TreeForeignKey(Treebeardal, on_delete=models.CASCADE, settings={ 'search': True, 'dnd': True, 'sort': True }) treebeardns = TreeForeignKey(Treebeardns, on_delete=models.CASCADE, settings={'dnd': True}) mptt_many = TreeManyToManyField(Mptt, related_name='example_many', settings={ 'show_buttons': True, 'search': True, 'dnd': True }) treebeardmp_many = TreeManyToManyField(Treebeardmp, related_name='example_many') treebeardal_many = TreeManyToManyField(Treebeardal, related_name='example_many') treebeardns_many = TreeManyToManyField(Treebeardns, related_name='example_many')
class Category(MPTTModel): STATUS = (('True', 'True'), ('False', 'False')) parent = TreeForeignKey('self', blank=True, null=True, related_name='children', on_delete=models.CASCADE) title = models.CharField(max_length=200, verbose_name="title", null=False) image = models.ImageField(verbose_name="image", upload_to='category') slug = models.SlugField(null=False, unique=True) status = models.CharField(max_length=10, choices=STATUS, default=True) create_at = models.DateTimeField(auto_now_add=True) update_at = models.DateTimeField(auto_now=True) class Meta: verbose_name = 'Category' verbose_name_plural = 'Categories' class MTTPMeta: order_insertion_by = ['title'] def __str__(self): full_path = [self.title] k = self.parent while k is not None: full_path.append(k.title) k = k.parent return ' / '.join(full_path[::-1])
class Customer(models.Model): ip = models.CharField(max_length=50, null=False, blank=False, unique=True, verbose_name="IP") hostname = models.CharField(max_length=50, null=False, blank=False, unique=True, verbose_name="Hostname") name = models.CharField(max_length=50, null=False, blank=False, verbose_name="Cliente") address = models.CharField(max_length=50, null=False, blank=False, verbose_name="Morada") # technician_contact = models.CharField(max_length=50, null=False, blank=False, verbose_name="Contacto Técnico") equipement = TreeForeignKey(Equipment, on_delete=models.CASCADE, null=True, blank=True, related_name='equipmenet') created_at = models.DateTimeField(default=timezone.now) updated_at = models.DateTimeField(auto_now=False, blank=True, null=True) def __str__(self): return self.hostname
class Example(models.Model): mptt = TreeForeignKey( Mptt, on_delete=models.CASCADE, help_text= "default settings: no buttons, no search, not filtered, no drag'n drop, no sort" ) treebeardmp = TreeForeignKey( Treebeardmp, on_delete=models.CASCADE, settings={ 'show_buttons': True, 'filtered': True }, help_text= "settings: show_buttons, filtered (exclude pk=1, see admin.py)") treebeardal = TreeForeignKey( Treebeardal, on_delete=models.CASCADE, settings={ 'search': True, 'dnd': True, 'sort': True }, help_text="settings: search, drag'n drop, sort") treebeardns = TreeForeignKey(Treebeardns, on_delete=models.CASCADE, settings={'dnd': True}, help_text="settings: drag'n drop") mptt_many = TreeManyToManyField( Mptt, related_name='example_many', settings={ 'show_buttons': True, 'search': True, 'dnd': True }, help_text="settings: buttons, search, drag'n drop<br>") treebeardmp_many = TreeManyToManyField(Treebeardmp, related_name='example_many') treebeardal_many = TreeManyToManyField(Treebeardal, related_name='example_many') treebeardns_many = TreeManyToManyField(Treebeardns, related_name='example_many')
class Mptt(MPTTModel): name = models.CharField(max_length=32) parent = TreeForeignKey('self', blank=True, null=True, on_delete=models.CASCADE, settings={'filtered': True}) def __str__(self): return self.name
class Mptt(MPTTModel): name = models.CharField(max_length=32) parent = TreeForeignKey( 'self', blank=True, null=True, on_delete=models.CASCADE, settings={'filtered': True}, help_text='filtered (exclude pk=1 from parent, see admin.py)') def __str__(self): return self.name
class Equipment(MPTTModel): name = models.CharField(max_length=200) layout = models.TextField(blank=True) parent = TreeForeignKey('self', null=True, blank=True, related_name="children") def __str__(self): return self.name class MPTTMeta: order_insertion_by = ['name']
class Equipment(MPTTModel): name = models.CharField(max_length=50, null=False, blank=False, unique=True) layout = models.TextField() parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children') class MPTTMeta: order_insertion_by = ['name'] def __str__(self): return self.name
class Customer(models.Model): name = models.CharField(max_length=200) ip = models.GenericIPAddressField() hostname = models.CharField(max_length=200) address = models.CharField(max_length=200) equipment = TreeForeignKey(Equipment, null=True) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def save(self, *args, **kwargs): if not self.id: self.created = timezone.now() self.modified = timezone.now() print(timezone.now()) return super(Customer, self).save(*args, **kwargs) def get_layout(self): return self.equipment.layout
class Objetivo(MPTTModel): codigo = models.CharField(max_length=50, null=True) name = models.CharField(max_length=500) createdAt = models.DateTimeField() parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children') tiene_indicador = models.BooleanField() id_indicador = models.ForeignKey('Indicador', on_delete=models.CASCADE, null=True, blank=True) prefer = models.FloatField(default=1) class MPTTMeta: order_insertion_by = ['name'] def __str__(self): return self.name
class Category(MPTTModel): name = models.CharField(max_length=50, unique=True) parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True, on_delete=models.CASCADE) slug = models.SlugField() class MPTTMeta: order_insertion_by = ['name'] class Meta: unique_together = (( 'parent', 'slug', )) verbose_name_plural = 'categories' def get_slug_list(self): try: ancestors = self.get_ancestors(include_self=True) except: ancestors = [] else: ancestors = [i.slug for i in ancestors] slugs = [] for i in range(len(ancestors)): slugs.append('/'.join(ancestors[:i + 1])) return slugs def __str__(self): return self.name def get_absolute_url(self): return reverse('product:category', kwargs={'slug': self.slug})