Django模型组织:不同杂货店中食品的位置

时间:2019-02-15 21:56:11

标签: django django-models

我正在使用食谱应用程序,我想通过杂货店中的过道对食谱的成分进行排序。由于不同的杂货店具有不同的配置,因此我希望用户能够按所选商店对配料列表进行排序。我是Django的新手,因此一直想弄清楚我需要的模型。我想我想在Food模型和Store模型之间建立多对多的关系。我想我想使用through参数,并使用另一个中介模型Location连接“食物”和“商店”,并且还包含aisle

如果可能的话,我想对choices的{​​{1}}进行一些描述,具体取决于aisle对象的选择

Store

任何想法都将不胜感激。到目前为止,我非常喜欢Django,但这是我第一次使用它,所以我有些困惑。

1 个答案:

答案 0 :(得分:0)

尝试一下。它将允许您在Aisle中存储多个Store,然后使用多对多关系将每个Food分配给多个Aisle

class Store(models.Model):
    name = models.CharField(max_length=100)

class Aisle(models.Model):
    name = models.CharField(max_length=100)
    store = models.ForeignKey(Store)

class Food(models.Model):
    name = models.CharField(max_length=100)
    aisle = models.ManytoManyField(Aisle)

class Recipe(models.Model):
    name = models.CharField()
    food = models.ManyToManyField(Food)

    def find_in_store(self, store):
        """
        Write a method here that finds a given recipe in a store, and call it with recipe.find_in_store(store). This will be a bit of a complex function, but a naive implementation (if you are running a small-scale project) would be to loop through all Aisle objects in the given store and determine whether any Food objects needed for the Recipe can be found in the given Aisle.
         """