我有这个型号的商品:
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。它作为标签工作得很好。
此方法存在问题:
- 标签不是类别。与标签没有类别/子类别、父/子关系。
实现此类别/子类别关系的最佳方式是什么?
最佳答案
只是不要将男人和女人作为一个类别。配饰、服装和运动服是根类别。
对男人和女人来说是产品的属性(可能对两者都是——男女通用——所以要做出性别多值选择)。
然后在模板中对男人和女人(甚至 child )进行硬编码(不太可能很快就会有更多性别),并仅显示包含该性别产品的类别。
关于python - 当根类别具有相同的子类别时,如何在 django 中实现类别/子类别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26523143/