【发布时间】:2018-12-18 22:58:54
【问题描述】:
我正在创建一个网站来托管我镇上餐馆的不同菜单。在下面的代码中,Restaurant 是餐厅,MenuSection 是开胃菜、主菜、甜点等部分,FoodItem 是您可以订购的菜品,属于菜单上的一个部分。我正在尝试将每个MenuSection 连接到Restaurant,并将每个FoodItem 连接到MenuSection 和Restaurant。我认为这可以使用ForeignKey 来实现,因为它是多对一的关系。
显然,餐厅之间的食物部分和食物项目正在重叠。我认为这不是问题,但在我的数据库中我有两个Restaurant 对象,一个已经有一个名为“开胃菜”的MenuSection,我试图给第二家餐厅一个名为“开胃菜”的MenuSection,它会不要让我这样做,说:“MenuItem 和这个MenuSection 已经存在。”我怎样才能解决这个问题?提前感谢您的帮助。
from django.db import models
class Restaurant(models.Model):
name = models.CharField(max_length=50)
address = models.CharField(max_length=80)
def __str__(self):
return self.name
class MenuSection(models.Model):
restaurant = models.ForeignKey(
Restaurant,
on_delete=models.CASCADE,
primary_key=True,
)
food_type = models.CharField(max_length=50)
def __str__(self):
return self.food_type
class MenuItem(models.Model):
restaurant = models.ForeignKey(
Restaurant,
on_delete=models.CASCADE,
primary_key=True,
)
MenuSection = models.ForeignKey(
MenuSection,
on_delete=models.CASCADE,
primary_key=True,
)
food_item = models.CharField(max_length=50)
def __str__(self):
return self.food_item
【问题讨论】:
标签: django django-models foreign-keys