0

「こんにちは、皆さん。別のモデルに基づいて、Django でモデルを作成しようとしていますが、サブクラス化や DB 関係はありません。私の元のモデルは次のようなものです。日付/時刻スタンプ付きのデータを保存します。

class Entry(Model):  
    data1 = FloatField()  
    data2 = FloatField()  
    entered = DateTimeField()  

また、ほぼ同じモデルを使用して、これらの各エントリの数値データを毎日集計したいと考えています。DailyAvg() バリアントの場合、1 日あたり 1 つの平均しかないため、DateTimeField() の代わりに DateField() を使用します。

class EntryDailyAvg(Model):  
    data1 = FloatField()  
    data2 = FloatField()  
    entered = DateField()  

したがって、問題: DB に格納された対応する毎日の平均モデルを必要とするこれらのデータ クラスが多数存在することになり、定義はほとんど同じです。各データ クラスに対して同等の DailyAvg() クラスの定義を再入力することもできますが、これは DRY に違反しているようであり、尻の大きな痛みでもあります。また、新しい EntryDailyAvg を保存するたびに Django が新しい Entry ベースを保存するため、EntryDailyAvg サブクラス Entry を持つことはできません。

DailyAvg() クラスを自動的に (魔法のように) 生成する方法はありますか?

前もって感謝します!

4

1 に答える 1

2

すべての data1 を含む AbstractEntry クラスを作成してから、Entry と EntryDailyAvg の 2 つのサブクラスを作成するとどうなるでしょうか。

1 つのクラスが抽象であることを django に伝える方法については、ドキュメントを確認してください。

于 2009-08-17T03:04:09.167 に答える