Django模型到现场

时间:2018-10-01 18:38:15

标签: django django-models

想要在Django的另一个模型字段中使用模型。有可能吗?

class Foo(models.Model):
    name = models.CharField(max_length=100)

class Bar(models.Model):
    students_name = #class foo fields
    fathers_name = #class foo fields

谢谢。

2 个答案:

答案 0 :(得分:2)

如果要从其他模型中选择记录,可以使用models.ForeignKey创建外键关系:

class Foo(models.Model):
    name = models.CharField(max_length=100)

class Bar(models.Model):
    students_name = models.ForeignKey(Foo)
    fathers_name = models.ForeignKey(Foo)

当存储新的Foo对象时,您可以从模型Bar的保存记录中进行选择。

修改

对于(创建)关系的(过度)说明,这会将对象Foo的两个单独实体链接到Bar

Relationship Diagram

Foo的两个实例不必是同一对象,而可以是模型Foo的不同对象。

答案 1 :(得分:1)

您可以这样做

class Foo(models.Model):
    name = models.CharField(max_length=100)

class Bar(models.Model):
    students_name = models.ForeignKey(Foo, on_delete=models.CASCADE)
    fathers_name = models.ForeignKey(Foo)

如果您需要某种其他类型的关系,请参考这些。

https://docs.djangoproject.com/en/2.1/topics/db/examples/