对象模型数组

时间:2018-06-21 11:06:16

标签: django django-models

我是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模型?

1 个答案:

答案 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