У меня есть дерево категорий, с записями Предметов, связанных с категорией. Итак, это мой файл модели:
from django.db import models
import mptt
class Category(models.Model):
nombre=models.CharField(max_length=70)
padre=models.ForeignKey('self', blank=True, null=True)
def __unicode__(self):
return self.nombre
class Meta:
ordering = ['tree_id', 'lft']
# Create your models here.
class Item(models.Model):
category=models.ManyToManyField(Category)
try:
mptt.register(Category, order_insertion_by=['nombre'], parent_attr='padre')
except mptt.AlreadyRegistered:
pass
Я использую ManyToManyField, потому что каждый элемент может быть в нескольких категориях.
Теперь, после установки «mptt» в моих приложениях. Я пытаюсь в оболочке следующее:
Category.tree.add_related_count(Category.tree.root_nodes(), Item,
'category', 'q_c', cumulative=True)
Который должен возвращать дерево и загружать количество Предметов, принадлежащих узлу на каждом узле. Это похоже на стандартную функциональность django-mptt, как указано в документации.
Однако я получаю ошибку. Ниже приводится след:
http://pastebin.com/m69ed1937
Использование SVN django-mptt и django 1.1 в Ubuntu 9.1.