class Nav(TendenciBaseModel): title = models.CharField(max_length=100, validators=[UnicodeNameValidator()],) description = models.TextField(blank=True, null=True) megamenu = models.BooleanField(default=False) perms = GenericRelation(ObjectPermission, object_id_field="object_id", content_type_field="content_type") objects = NavManager() class Meta: # permissions = (("view_nav",_("Can view nav")),) app_label = 'navs' def __str__(self): return self.title def get_absolute_url(self): return reverse('navs.detail', args=[self.pk]) def save(self, *args, **kwargs): super(Nav, self).save(*args, **kwargs) # reset nav cache clear_nav_cache(self) @property def top_items(self): """ Returns all items with level 0. """ return self.navitem_set.filter(level=0).order_by('position')
class Category(OrderingBaseModel): name = models.CharField(max_length=255, validators=[UnicodeNameValidator()],) slug = models.SlugField() parent = models.ForeignKey('self', blank=True, null=True, related_name='children', on_delete=models.CASCADE) class Meta: unique_together = ('slug', 'parent',) verbose_name_plural = _("Categories") ordering = ('position', 'name') app_label = 'directories' def __str__(self): return self.name
def __init__(self, *args, **kwargs): super(NavForm, self).__init__(*args, **kwargs) self.fields['title'].validators.append(UnicodeNameValidator())