我是Django的初学者,我无法从另一个类注册对象的模型数组
示例:
class Trigger(models.Model):
id = models.IntegerField()
name = models.TextField()
description = models.TextField()
class Host(models.Model):
id = models.IntegerField()
triggers = [] # <--- Array of Trigger instances here
如何将空Bracets重写为Django模型?
答案 0 :(得分:1)
通常,您可以通过在引用Host
的触发器上添加ForeignKey
[django-doc],然后在related_name=
'处用作'triggers
来做到这一点:
class Host(models.Model):
id = models.IntegerField()
class Trigger(models.Model):
id = models.IntegerField()
name = models.TextField()
description = models.TextField()
host = ForeignKey(Host, on_delete=models.CASCADE, related_name='triggers')
Django将为Host
添加反向关系。因此,您然后可以查询somehost.triggers
,它是RelatedManager
,例如,获取.all()
,元素或.filter(..)
。因此,somehost.triggers.all()
将导致一个QuerySet
包含 all Trigger
个对象,这些对象的host
实例为somehost
。