Django,如何在没有M2M的模型中拥有数组?

问题描述

我希望我的模型具有其他模型实例的数组。让我解释一下。

我有一个Company模型,该模型具有一个localizations字段,该字段应该是地址集/地址数组。由于一个地址只能用于一个Company,因此M2M关系在这里似乎是错误的。

删除Company时,其所有localizations也应删除

我该怎么做? (我不使用Postgres)

解决方法

在这种情况下,您需要一个ForeignKey(多对一关系)。请参见下面的代码:

class Company(models.Model):
    ...

class Address(models.Model):
     company = models.ForeignKey(Comapny,on_delete=models.CASCADE,related_name="localizations")
     address_line_1 = models.CharField(max_length=255,blank=False)
     # Other fields you want
     ...

每个Address指向一个Company实例。但是,有多少Address可以指向一个Company没有限制。从这个意义上讲,公司“拥有”许多地址。

related_name="localizations"参数意味着您可以执行company.localizations来获取指向该公司的Address实例的数组。

最后,on_delete=models.CASCADE意味着,如果删除Company实例,则指向该实例的Address实例也将被删除。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...