Здравствуйте! Мне необходимо сделать архив статей по годам и месяцам создания:

2007

   май
           статья 1
           статья 2
    август
           статья 3

2010 ....

Для этого я решил воспользоваться пакетом django-mptt. Создаю вот такую модель:

Таблица CategoryYear - описывает категорию верхнего уровня дерева, содержащую год создания публикации (статьи).

class CategoryYear(MPTTModel):
    name = models.CharField('Year', max_length = 4)
    parent = TreeForeignKey('self', blank = False, null = False, db_index = True, related_name = 'yers')

    class Meta:
        verbose_name = u'Год'
        verbose_name_plural = u'Год'

    def __unicode__(self):
        return self.name

Таблица CategoryMonth - описывает категорию второго уровня дерева, содержащую наименование месяца создания публикации (статьи).

class CategoryMonth(MPTTModel):
    name = models.CharField(max_length = 8)
    parent = TreeForeignKey(CategoryYear, blank = False, null = False, db_index = True, related_name = 'months')
    slug = models.SlugField()

    class Meta:
        verbose_name = u'Месяц'
        verbose_name_plural = u'Месяц'

    def __unicode__(self):
        return self.name

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(translit(self.name, 'ru', reversed = True))
        super(CategoryMonth, self).save(*args, **kwargs)

Таблица Atticle - описывает публикацию (статью).

class Article(models.Model):
    parent = TreeForeignKey(CategoryMonth, blank = False, null = False, db_index = True, related_name = 'articles')
   title = models.CharField()
   slug = models.SlugField()
   detail_text = models.CharField()
   data = models.DateField()
   active = models.BooleanField(default = False)

   class Meta:
       verbose_name = u'Статья'
       verbose_name_plural = u'Статьи'

   def __unicode__(self):
       return self.title

   def save(self, *args, **kwargs):
       if not self.slug:
           self.slug = slugify(translit(self.title, 'ru', reversed = True))
       super(Article, self).save(*args, **kwargs)

Поскольку я в Django новичок, прошу прокомментировать насколько правильны мое решение и модель.