曲線が関連付けられている製品(たとえば、ディオド)のリストがあります。例えば、
- ダイオード1:曲線1:[(0,1)、(1,3)、(2,10)、....、(100,0.5)]
- ダイオード2:曲線2:[(0,2)、(1,4)、(2.1,19)、...、(100,0)]
したがって、製品ごとに曲線(x軸の値は同じrange(1,100)
)がありますが、y軸の値は異なります。
私の質問は、後でビューでデータを計算したい場合(たとえば、曲線の下の領域、またはその曲線に別の曲線を掛けたものなど)、そのようなデータを(Django + PostgreSqlを使用して)保存するためのベストプラクティスは何ですか?チャートも作成するので、ビューは値をプルする必要があります。
私の最初の試みにはさまざまな制限がありました。
ナイーブな試み1
# model.py for i in range(101): name_sects = ["x", str(i+1)] attrs["".join(name_sects)] = models.DecimalField(_("".join([str(i+1),' A'])), max_digits=6) attrs['intensity'] = model.DecimalField(_('Diode Intensity')) Diode = type('Diode', (models.Model,), attrs)
わかりました。これにより、「x」、x1、x2などごとにフィールドが作成され、管理者で各「y」に入力できます...しかし、ビューまたはテンプレートでどのように操作するかは明らかではありません。(そして明らかに、記入するのが苦痛です)
ナイーブな試み2
#model.py class Curve(models.Model) x_axis = models.PositiveIntegerField( ...) y_axis = models.DecimalField( ...) class Diode(models.Model) name = blah, blah intensity = model.DecimalField(_('Diode Intensity'), blah, blah) characteristic_curve = model.ManyToManyField(Curve)
多対多は前進する道ですか?各ダイオードに対応する単一の曲線であっても?(ただし、多くのポイント、おそらく2つのダイオードが同じポイントを共有します)。
そのためのアドバイス、ヒント、またはツールへのリンクは非常にありがたいです。