我知道这是一个非常基本的问题。我正在学习django,我看到最重要的部分是国外的关键领域和许多领域。它们被广泛使用。如果不了解这两者,就无法设计出合适的模型。如果我要设计一个具有FK关系的模型,我总是要先看一个例子,然后给出解决方案。我不能自信地设计一个模型,因为我不太了解这一点。如果有人能让我明白什么是FKField,FKField和MTMField是如何用简单的英语在表格中生成的(语言是我从文档中理解的障碍之一),那就太好了。你知道吗
这是外键的模型
class Category(models.Model):
name = models.CharField()
class Product(models.Model):
name = models.CharField()
category = models.ForeignKeyField(Category, related_name="product")
在django中,可以添加一个“变量”实例作为表的一部分:即ForeignKey。你知道吗
在这里,您将有一个名为“[NAME OF YOUR APP]\u product”的SQL表,该表将有两列:“NAME”和“category\u id”。你知道吗
您将拥有另一个名为“[NAME OF YOUR APP]\u category”的表,该表将包含一列“NAME”。你知道吗
Django知道,当您加载产品时,它必须获取其category\u id,然后从category表中获取该元素。你知道吗
这是因为您使用了foreignkey:它是一个“变量”。它是“多对一”,因为你可以有许多产品具有相同的类别。你知道吗
然后你就有了“多对多”。这里可以有多个“变量”
这里的区别是,您将得到一个名为“[NAME OF YOUR APP]\u product”的表,其中只有一列:“NAME”。你知道吗
接下来,您将有一个表“[应用程序名称]\u product\u category”,其中包含“product\u id”和“category\u id”列。你知道吗
最后一个表是“[NAME OF YOUR APP]\u category”,其中有一列:“NAME”。你知道吗
它的工作方式是,Django将获得产品,并看到它有许多领域的类别。你知道吗
它将转到“[应用程序名称]\u产品类别”,并从“[应用程序名称]\u类别”获取所需产品id的id列表。你知道吗
这是多对多,因为你可以有很多产品,每一个不同的类别很多。你知道吗
如果您仍然不明白,我将编辑这篇文章,添加一个SQL示例来说明数据库的样子。你知道吗
(很抱歉,这本书不太好读,也不是一个很宽泛的解释Django如何处理事情的方法,但我试着做了简短的陈述。)
相关问题 更多 >
编程相关推荐