这是我的项目模型,如何创建一个类别和子类别,如:男装衬衫和女装衬衫。你知道吗
class Item(models.Model):
title = models.CharField(max_length=250)
company_name = models.CharField(max_length=50, blank=True)
product_you_may_like = models.ForeignKey(ProductYouMayLike, null=True, blank=True,
on_delete=models.CASCADE)
image = models.ImageField(null=True)
price = models.IntegerField()
old_price = models.IntegerField(null=True, blank=True)
shipping_amount = models.IntegerField()
percentage_off = models.IntegerField(null=True, blank=True)
description = models.TextField(null=True, blank=True)
specification = models.TextField(null=True, blank=True)
product_type = models.CharField(max_length=20, choices=PRODUCT_TYPE, null=True, blank=True)
slug = AutoSlugField(populate_from='title', unique=True)
timestamp = models.DateTimeField(auto_now_add=True)
active = models.BooleanField(default=True)
class Meta:
ordering = ['-timestamp']
db_table = 'items'
verbose_name_plural = 'Items'
def __str__(self):
return self.title
我可以通过添加一个模型类别和一个foreignkey到Item模型来解决这个问题。例如
在模型中,在类别中添加男式衬衫,然后保存。你知道吗
在视图.py地址:
在模板中:
您可以使用django-mptt来创建一个类别树,然后在项目模型中拥有此模型的外键。你知道吗
我不知道你是怎么写你的
MenShirtCategory
,但是这个名字让我觉得你把类和实例弄混了。你知道吗通常,您可能会有一个
Category
模型(或者ItemCategory
,如果这些分类是特定于Item
)的,那么可以这样写:然后将其连接到项目模型:
通过在
Category
模型的parent
字段中使用'self'
,可以实现嵌套类别的概念。你知道吗当然,您可能需要手动确保不创建循环(B的子级A的子级),因为数据库(然后是模型)不能为您创建循环。执行此操作时,您可能还需要检查类别不能是它自己的父级。你知道吗
相关问题 更多 >
编程相关推荐