一对多关系

时间:2010-02-10 02:21:21

标签: django-models

我有2个模型,我想要,在类2中的第1类的任何实例我如何在django模型中做...并且我尝试使用manytomany字段但问题是当我添加一个新对象时它会有很多地方已经存在(我不想要)...任何想法我该怎么做......

2 个答案:

答案 0 :(得分:1)

一对多的关系只是另一个方向的ForeignKey

答案 1 :(得分:0)

您可能遇到问题的一个原因是关系数据库中的关系与它们在对象中的关系有些倒退。听起来你希望class2的一个实例包含class1的列表。你这样做的方法是在class1上引用一个引用class2的ForeignKey。如果你不熟悉关系数据库,那么class2似乎应该引用class1,但是在关系世界中,当你有一对多时,很多人需要引用它。

例如,假设你有一个文件夹结构。您考虑的“正常”方式是您有一个文件夹,该文件夹中包含一些文件。但是在关系数据库中,该文件夹没有文件列表。事实上,没有任何东西可以(直接)拥有其他任何东西的清单。你所做的就是每个文件都知道它们所在的文件夹的ID。现在当你有一个文件夹而你想要找到其中的文件时,你要做的就是查看所有文件并查找文件那个文件夹就像它的容器一样。