我创建了一个名为MenuItems的模型,它允许我输入餐馆菜单上的所有项目,稍后我将在前端使用这些项目。我还创建了一个模型名称MenuGrouping,以便在前端,我可以让Bootstrap选项卡显示group_title,并在每个选项卡下显示该组中的项目。我应该在MenuItems模型中添加哪个字段才能将其与组相关联?我试图使用group = models.ForeignKey(MenuGrouping),但后来我遇到了显示特定组中每个项目的问题。
Models.py:
class MenuItems(models.Model):
menu_item_title = models.CharField(max_length=256)
menu_item_description = models.TextField()
menu_item_price = models.DecimalField(max_digits=4, decimal_places=2)
customer_favorite = models.BooleanField(default=False)
is_on_menu = models.BooleanField(default=True)
class Meta:
ordering = ('menu_item_title', )
class MenuGrouping(models.Model):
group_title = models.CharField(max_length=256)
我可以在MenuGrouping模型中添加一个可以关联多个MenuItem的关系吗?
提前谢谢!
答案 0 :(得分:1)
如果我理解你正确的想要制作像饮料,食物,沙漠等的团体......那么这就是:
每个项目只能在一个组中(我的意思是苏打水是一种饮料,它也不能是食物等)。所以你需要做的是在 MenuItems 模型中添加一个字段。
你的 MenuItems 应该是这样的:
{% for group in groups %)
# add your tabs or just print the group name. or how ever you want.
Group {{ group.group_title }}:
# and now you can list the items in this group here
{% for item in group.menuitems_set.all %}
Title is: {{ item.menu_item_title }}
Price is: {{ item.menu_item_price }}
...
{% endfor %}
{% endfor %}
现在要在模板中使用它,首先获取视图中的组并将它们发送到模板,然后:
obj.Watch
如果您需要将所有项目列在其他地方或其他任何方式,只需将项目发送到模板。
以下是多对一关系文档: Many-to-one relationships
此外,您可以向MenuGrouping添加m2m关系并向每个组添加项目,但是一个项目可以分为多个组,而对于餐馆菜单,我无法看到可能发生的情况。