3

Django モデル内の関係を拡張しようとしています。要素がカテゴリ内に格納されるシステムがあります。models.py各カテゴリがサブカテゴリに関連付けられるように my を構成するにはどうすればよいですか?

私のカテゴリモデルは次のようになります。

class Category(models.Model):
   site = models.ForeignKey(Site)
   template_prefix = models.CharField(max_length=200, blank=True)
   name = models.CharField(max_length=200)
   slug = models.SlugField() 
   description = models.TextField(default='')
   sortby_fields = models.CharField(max_length=200,
                                 help_text=_(u'A comma separated list of field names that should show up as sorting options.'),
                                 blank=True)
   sort_order = models.PositiveIntegerField(default=0)

   def __unicode__(self):
       return self.name + u' Category'

   class Meta:
       verbose_name_plural = u'categories'

提案をありがとう。

4

2 に答える 2

18

それ自体への外部キーを作成できます。

class Category(models.Model):
   ...
   parent_category = models.ForeignKey('self', null=True, blank=True)

Category次に、既存のインスタンスをそのインスタンスのとして割り当てることができparent_categoryます。次に、特定のインスタンスのすべてのサブカテゴリを検索する場合は、次のCategoryようにします。

subcategories = Category.objects.filter(
    parent_category__id=target_category.id)
于 2012-06-26T03:06:13.590 に答える
1

django-mpttを試すこともできます。いくつかの追加機能があります。

于 2012-06-26T05:24:58.043 に答える