[英]Relation 1 to N in Django
我是一名新的python开发人员。 现在,我正在学习Django,但遇到了一些麻烦。
例如,在Java中,我可以具有1对N的关系,如下所示:
public class Son(){
// some things
}
public class Father(){
Son son[];
// some things
}
但是,如果我需要在Django中对其建模,我该怎么做?
我尝试了下面的代码,但它仅提供1对1的关系:
class Father:
father = models.ForeignKey('Son')
我怎样才能做到这一点?
class Son:
father = models.ForeignKey(Father)
这样任何儿子只能有一个父亲...但是任何父亲都可以有多个儿子,这是一对多的关系
你可以让它变得更好
class Son:
father_id = Column(Integer, ForeignKey('father.id'))
father = relationship("Father", backref="sons")
现在,它将为父亲实例提供一个名为sons的引用,该引用在列表中有很多儿子(不确定您为什么选择父亲/儿子而不是父母/孩子,而是meh)
这是最好的方法(总是定义related_name):
class Son(models.Model):
father = models.ForeignKey(Father, related_name="sons")
然后,您可以执行以下操作:
dad = Father.objects.get(id=5)
for son in dad.sons.all():
print son.name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.