我需要为同一个外键保存多个值。让我举个例子:
class SaveMoz(models.Model):
keyword = models.ForeignKey(KW)
m1 = ?
m2 = ?
m3 = ?
m4 = ?
这些字段中的每一个应该代表分析的URL(通过moz api),我想存储多个值。这是我要保存的输出:
[{u'pda': 53.2342343456775, u'upa': 23.45324234235234}, # These 2 would need to go to #m1
{u'pda': 58.26193857945012, u'upa': 36.56733779379807}, # These 2 into #m2
{u'pda': 66.15243480785065, u'upa': 35.377615927279244}, #m3
{u'pda': 42.8651222137307, u'upa': 20.487826402597264}, #m4
]
我只为每个字段提供了2个值(pda,upa)作为示例,我将使用5(并非所有输入同时进行)。
存储这些产品的最佳方式是什么? MultiValueField?把它保存为json? 我稍后需要调用这些值来执行不同的计算。
答案 0 :(得分:2)
使用through table,可以为关系添加额外的上下文。
class UrlData(models.Model):
pda = models.FloatField()
upa = models.FloatField()
class SaveMozData(models.Model):
savemoz = models.ForeignKey('SaveMoz')
kw = models.ForeignKey(KW)
data = models.ManyToManyField(UrlData)
class SaveMoz(models.Model):
keyword = models.ManyToManyField(KW,
through='SaveMozData',
through_fields=('savemoz','kw'))
答案 1 :(得分:1)
创建一个代表数据的单独模型/类
class GoodNameForM(models.Model):
moz = models.ForeignKey(SaveMoz)
pda = DecimalField()
upa = DecimalField()
请务必提供代表他们的字段名称
您可以在SaveMoz
上通过
save_moz_instance.goodnameform_set.all()