【发布时间】:2021-11-09 23:00:49
【问题描述】:
我正在尝试制作在线菜单。我想创建一个类别、子类别和其中之一的项目。
我的意思是,一个项目可以属于“sushi”之类的类别 -> nameofsushi,或者属于 sushi -> avocado rolls -> nameofsushi 之类的子类别。
我的 models.py 中有类似的东西,但有更好的方法吗?
class Category(models.Model):
name = models.CharField(max_length=200)
description = models.TextField(max_length=500, verbose_name='Descripción', blank=True, null=True)
parent = models.ForeignKey('self', related_name='children', null=True, blank=True, on_delete=models.CASCADE)
def __str__(self):
return 'Category: {}'.format(self.name)
class MenuItem(models.Model):
name = models.CharField(max_length=200)
image = models.ImageField(upload_to='menu_images/', null=True, blank=True)
description = models.TextField(blank=True, null=True)
price = models.DecimalField(max_digits=6, decimal_places=0)
other_Price = models.DecimalField(max_digits=6, decimal_places=0, null=True, blank=True)
categories = models.ManyToManyField('Category', related_name='item', null=True, blank=True)
def __str__(self):
return 'MenuItem: {}'.format(self.name)
【问题讨论】:
-
我认为您的解决方案很好。也许this question 是相关的。
标签: python django django-models