2016-11-17 18 views
0

私の現在のモデルに満足できず、同じ結果を得るためのより良い/望ましい方法があるかどうか尋ねたいと思っていました。Django:モデル(タプルのリスト)を指定する正しい方法

何が欲しいですか?

  • 複数のリストを含むオブジェクトA。各リストにはタプルが含まれています。最初のエントリは日付オブジェクトで、2番目のエントリは浮動小数点数または整数です。
  • Aを削除すると、Bも削除する必要があります。私がBを削除すると、空のリストだけが必要になります。私はそれを達成しようとした方法

class TimeValueIntSequence(models.Model): 
    pass 

class TimeValueFloatSequence(models.Model): 
    pass 

class TimeValueInt(models.Model): 
    time = models.DateField() 
    value = models.IntegerField() 
    sequence = models.ForeignKey(TimeValueIntSequence, models.CASCADE, blank=False, null=False) 

class TimeValueFloat(models.Model): 
    time = models.DateField() 
    value = models.FloatField() 
    sequence = models.ForeignKey(TimeValueFloatSequence, models.CASCADE, blank=False, null=False) 

class A(models.Model): 
    field1 = models.OneToOneField(TimeValueIntSequence, models.SET_NULL, blank=True, null=True, related_name='field1') 
    field2 = models.OneToOneField(TimeValueIntSequence, models.SET_NULL, blank=True, null=True, related_name='field2') 
    field3 = models.OneToOneField(TimeValueFloatSequence, models.SET_NULL, blank=True, null=True, related_name='field3') 

何が悪いのでしょうか?

  • アプローチが非効率的であるようです。
  • タイプAのオブジェクトを削除すると、シーケンスは削除されません。

フィードバックがありますか? ありがとうございました!

+0

JSONのように思われます。オーバーヘッドが増えたために大きなファンではないので、あなたに何か良いものがあるかどうかを知らせてください。 – user667804

答えて

0

私はJSONを使い終えたので、より良い解決策を見つけることができませんでした。同じ問題がある場合は、DjangoJSONEncoderを使って日時オブジェクトを処理してください。

備考:Djangoがこれを抽象化して、任意のデータ型を直列化可能である限り話すことができればいいですか?方法がわかっているなら、私に知らせてください。

関連する問題