[英]How to make model for sub-category and category for product in django?
我必须在 django 中制作产品模型,当我们选择作为外键的主类别时,我们必须选择子类别,问题是它会显示所有子类别。 它必须根据所选的主要类别显示子类别
主要类别型号
这里我们只有三个字段
class Category(models.Model):
image = models.ImageField(upload_to="maincategory",null=True)
icon = models.CharField(max_length=200,null=True)
title = models.CharField(max_length=200,null=True)
def __str__(self):
return self.title
子类别模型
这里我们将 Main 类别作为外键
class SubCategory(models.Model):
main_category = models.ForeignKey(Category,on_delete=models.CASCADE)
title = models.CharField(max_length=200,null=True)
def __str__(self):
return self.main_category.title + " - " + self.title
产品型号
在产品模型中,我将为主类别和子类别提供两个外键
maincategory = models.ForeignKey(Category,on_delete=models.CASCADE,null=True,blank=True)
subcategory = models.ForeignKey(SubCategory,on_delete=models.CASCADE,null=True,blank=True)
class Product(models.Model):
sts = (
("PUBLISH","PUBLISH"),
("DRAFT","DRAFT"),
)
vendor = models.ForeignKey(Vendor,on_delete=models.CASCADE)
maincategory = models.ForeignKey(Category,on_delete=models.CASCADE,null=True,blank=True)
subcategory = models.ForeignKey(SubCategory,on_delete=models.CASCADE,null=True,blank=True)
title = models.CharField(max_length=200,null=True)
description = models.TextField()
price = models.IntegerField(null=True,default=0)
discount = models.IntegerField(null=True,default=0)
stock = models.IntegerField(null=True,default=0)
size = models.CharField(max_length=200,null=True,blank=True)
color = models.CharField(max_length=200,null=True,blank=True)
date = models.DateTimeField(auto_now_add=True)
slug = AutoSlugField(populate_from='title',unique=True,null=True,default=None)
status = models.CharField(choices=sts,null=True)
def __str__(self):
return self.vendor + " - " + self.title
那么如何在管理面板 django 中创建根据主类别选择子类别的模型
如果您只想拥有一个嵌套的子类别,您可以查看 django mptt django-mptt
或者你可以关注这篇博文 simpleit
有一个使用 django mptt 的分类教程。 您还可以进一步自定义 django mptt 以限制其深度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.