2017-07-08 29 views
0

我創建了一個名爲MenuItems的模型,它將允許我輸入餐廳在其菜單上的所有項目,稍後我將在前端使用這些項目。我還創建了一個模型名稱MenuGrouping,以便在前端,我可以使Bootstrap選項卡顯示group_title,並在每個選項下顯示該組中的項目。我應該在MenuItems模型中添加哪些字段以將其關聯到組?我試圖使用group = models.ForeignKey(MenuGrouping),但後來遇到了顯示特定組中每個項目的問題。如何通過模型在Django中建立分組?

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模型,我可以將多個關聯的MenuItems增加有關係嗎?

預先感謝您!

回答

1

如果我正確理解你,你正試圖使像飲料,食品,沙漠團體和......那麼這就是:

每個項目只能有一組(我的意思是汽水飲料並且它不能是食物等等)。因此,您需要在此處執行的操作是向MenuItems模型添加一個字段。

的MenuItems應該是這樣的:

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) 
    group = models.ForeignKey(MenuGrouping) 

我們使用這個模板中的第一個拿到團體查看和發送他們的模板,然後:

{% 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 %} 

如果您需要將所有項目列出在別的地方,或者以其他任何方式將項目發送到模板。

這裏是多對一關係文件: Many-to-one relationships

您也可以用於M2M關係添加到MenuGrouping和項目添加到每個組,但隨後一個項目可以在多個組和餐廳菜單我看不出會發生什麼。