我有客户的静态信息
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()
我的问题是,我可以创建某种“自动”关系,例如foreinKey ManytoMany 客户和使用手机IMEI的每日电话记录之间,因为我收集的记录不了解客户,我想通过添加某种第三种方式,通过IMEI将客户连接到所有电话记录表格如
class CutomerIMEI(models.Model):
customer = models.ForeignKey(Site)
imei = models.CharField(max_length=64)
所以我可以做phone.customer和customer.phones.filter(day ='some day')
谢谢, 吉文
答案 0 :(得分: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')
将起作用。
答案 1 :(得分:0)
你不是在寻找Many-to-Many extra fields吗?