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
Django型号–;设置类别、可选子类别和产品_Django_Django Models - Fatal编程技术网

Django型号–;设置类别、可选子类别和产品

Django型号–;设置类别、可选子类别和产品,django,django-models,Django,Django Models,我正在开发一个Django应用程序,其中每个产品都属于一个主要类别,并且≥0可选子类别 例如: Product: Brandname All-stars Subcategories: Sneakers, Lo-tops, trainers Category: Shoes 对于某些通用产品,我们不需要子类别,只需要主类别 我的尝试允许子类别关系为可选。但是,当在admin或表单中添加新产品时,所有子类别都可用,但我只希望适用于所选类别的子类别可用 例如,当添加一件新雨衣时,我不希望子类别的运动鞋

我正在开发一个Django应用程序,其中每个产品都属于一个主要类别,并且≥0可选子类别

例如:

Product: Brandname All-stars
Subcategories: Sneakers, Lo-tops, trainers
Category: Shoes
对于某些通用产品,我们不需要子类别,只需要主类别

我的尝试允许
子类别
关系为可选。但是,当
在admin
或表单中添加新产品时,所有子类别都可用,但我只希望适用于所选类别的子类别可用

例如,当添加一件新雨衣时,我不希望子类别的运动鞋或lo上衣可用

有什么建议吗

From django.db import models

class Category(models.Model):
    name = models.CharField(max_length=64)

class SubCategory(models.Model):
    name = models.CharField(max_length=64)
    category = models.ForeignKey(Category)

class Product(models.Model):
    name = models.CharField(max_length=64)
    category = models.ForeignKey(Category)
    subcategory = models.ManyToManyField(Subcategory, blank=True)

您具有指定子类别的父类别的关系。那么,在为产品选择类别时,查询哪些子类别将此类别作为父类别对您有效吗?当我阅读您的描述时,我只会为每个产品选择一个类别,然后进一步过滤可以基于标记系统,您只显示该类别中使用的标记,如果您想筛选表单中的可用选项,如果您需要更改django管理站点中的表单,步骤1:验证所有子类别是否属于
clean
方法中的产品类别。第二步:添加js代码,根据所选类别过滤出子类别。感谢您的建议!我也考虑过标记,但这仍然会让我回到其他建议,基本上是过滤查询和/或修改表单和管理员?我一直在寻找一个解决方案,也在研究基于树的方法,这是我不熟悉的。