Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Django模型创建子类别_Python_Django_Models_Categories - Fatal编程技术网

Python 使用Django模型创建子类别

Python 使用Django模型创建子类别,python,django,models,categories,Python,Django,Models,Categories,我正在尝试扩展Django模型中的关系。我有一个系统,其中元素存储在类别中。如何构造我的models.py,使每个类别都与一个子类别相关 下面是我的分类模型的外观: class Category(models.Model): site = models.ForeignKey(Site) template_prefix = models.CharField(max_length=200, blank=True) name = models.CharField(max_length

我正在尝试扩展Django模型中的关系。我有一个系统,其中元素存储在类别中。如何构造我的
models.py
,使每个类别都与一个子类别相关

下面是我的分类模型的外观:

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'

谢谢您的建议。

您可以为自己创建外键:

class Category(models.Model):
   ...
   parent_category = models.ForeignKey('self', null=True, blank=True)
然后,您可以将任何现有的
类别
实例指定为该实例的
父类
。然后,如果要查找给定
类别
实例的所有子类别,您可以执行以下操作:

subcategories = Category.objects.filter(
    parent_category__id=target_category.id)

你也可以试试。它还有一些额外的功能。

5颗星和1张选票?慈济人