カテゴリに関連する項目エントリを持つカテゴリ ツリーがあります。だから、これは私のモデルファイルです:
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 を使用します。