我有这个型号项目:
class Item(CustomBaseModel):
name = models.CharField(max_length=100)
每个项目属于特定类别,可以是另一个类别的子类别。简而言之,类别将如下所示:
Men
accessories
clothing
tops
jeans
sportswear
Women
accessories
clothing
skirt
pyjamas
sportswear
因此,根类别(男性,女性)将具有相同的子类别。
我已经阅读了很多资源并尝试了以下内容:
第一次尝试:
分类表
id | name | parent_id
1 | Men |
2 | Women |
3 | accessories | 1
4 | clothing | 1
5 | tops | 4
此方法存在问题:
我需要男士和女士的配饰。我将不得不在这里复制配件。
我认为
第二次尝试:
我尝试使用django-taggit。它作为标签工作得很好。
此方法存在问题:
实现此类别/子类别关系的最佳方法是什么?
答案 0 :(得分:2)
不要让男人和女人成为一个类别。配饰,服装和运动服是根类别。
男人和女人是产品的属性(可能是男女皆宜的 - 所以做出性别多重选择)。
然后在模板中对男人和女人(甚至是孩子)进行硬编码 - 很快就会有更多的性别 - 并且仅显示包含该性别产品的类别。
答案 1 :(得分:1)
添加字段
parent = models.ManyToManyField("self", null=True, blank=True)