我有一个类别树,其中包含与该类别相关的 Items 条目。所以这是我的模型文件:
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 的标准功能。
但是,我得到一个错误。以下是痕迹:
在 Ubuntu 9.1 中使用 SVN django-mptt 和 django 1.1。