0

我有一个客户的静态信息

class Customer(models.Model):
    name = models.CharField(max_length=256)

以及他的手机状态的 DWH 样式表以及每日数据:

class Phone(models.Model):
    imei = models.CharField(max_length=64)
    day = models.DateField()
    param1 = models.INtegerField()
    param2 = models.INtegerField()

我的问题是,我是否可以使用电话 IMEI 在客户和每日电话记录之间创建某种“自动”关系,例如foreinKey ManytoMany,因为我收集的记录不了解客户,我想连接一次通过添加某种第三表,客户只需一次通过 IMEI 访问所有电话记录

class CutomerIMEI(models.Model):
    customer = models.ForeignKey(Site)
    imei = models.CharField(max_length=64)

所以我可以做 phone.customer 和 customer.phones.filter(day='some day')

谢谢, 谢伊

4

2 回答 2

1

我想你快到了,除了我会将imei字段定义CustomerIMEI为实际的 ForeignKey - 您可以指定要在目标表中链接到的字段,如下所示:

imei = models.ForeignKey(Phone, to_field='imei')

现在,您可以将其CustomerIMEI用作through来自客户的多对多关系字段:

phones = models.ManyToManyField(Phone, through=CustomerIMEI)

现在您建议的语法customer.phones.filter(day='some day')将起作用。

于 2013-09-24T13:47:26.847 回答
0

您不是在寻找多对多的额外字段吗?

于 2013-09-24T13:20:59.157 回答