'Ello, alle. Ich versuche, ein Modell in Django zu erstellen, das auf einem anderen Modell basiert, aber keine Unterklasse oder DB-Beziehung zu einem anderen Modell hat. Mein Originalmodell sieht ungefähr so aus: Es speichert einige Daten mit einem Datums-/Zeitstempel.Wie man ein Modell in Django ohne Subclassing klont/mutiert
class Entry(Model):
data1 = FloatField()
data2 = FloatField()
entered = DateTimeField()
Ich würde auch für jeden dieser Einträge auf täglicher Basis die numerischen Daten aggregieren möchten, mit Hilfe eines Modells, das fast identisch ist. Für die DailyAvg() Variante werden wir eine Datefield() anstelle eines Datetimefield() verwenden, da es nur einen Durchschnitt pro Tag sein wird:
class EntryDailyAvg(Model):
data1 = FloatField()
data2 = FloatField()
entered = DateField()
So ist das Problem: Es wird viel sein von diesen Datenklassen, die ein entsprechendes tägliches Durchschnittsmodell benötigen, das in der Datenbank gespeichert ist, und die Definitionen sind fast identisch. Ich könnte einfach eine Definition für eine äquivalente DailyAvg() - Klasse für jede Datenklasse eingeben, aber das scheint DRY zu verletzen, und es ist auch ein großer Schmerz in den Arsch. Ich kann auch keinen EntryDailyAvg Subclass Eintrag haben, da Django jedes Mal, wenn ich ein neues EntryDailyAvg speichere, eine neue Entry Base speichert.
Gibt es eine Möglichkeit, die DailyAvg() - Klasse automatisch (-magisch?) Zu generieren?
Vielen Dank im Voraus!
Und Sie sind nicht Unterklasse 'Eintrag' weil ...? –
Eigentlich tat ich an einem Punkt, und vergaß, dass jedes Mal, wenn Sie die Kindklasse speichern, eine Instanz der Elternklasse ebenfalls gespeichert wird. Ich habe mich immer gefragt, woher all die zusätzlichen Entry() s kommen - sie wurden jedes Mal gespeichert, wenn ich ein DailyAvg() speichere, also habe ich am Ende nur die Entry-Tabelle "verschmutzt". –