ich ./manage.py dumpdata --natural-foreign --natural-primary
meine Klassen versuche, die da sind:Django DumpData von Multi-Table vererbte Objekte
class SuperClassManager(Manager):
def get_by_natural_key(self, identifier):
return self.get(identifier=identifier)
class SuperClass(Model):
objects = SuperClassManager()
identifier = CharField(max_length=31, unique=True)
def natural_key(self):
return (self.identifier,)
class Class(SuperClass):
pass
Aber die gesicherten Daten ist:
[
{
"model": "app.superclass",
"fields": {
"identifier": "identifier"
}
},
{
"model": "app.class",
"fields": {}
}
]
Es gibt keine Möglichkeit, die Class
Instanz zu beziehen zur SuperClass
Instanz in diesem Fall. Was vermisse ich? Warum ist das superclass_ptr
in Class
(das auf SuperClass
zeigt) nicht serialisiert, so dass es möglich ist, die Instanzen zu beziehen?
Problem ist: Ich habe mehr als eine Unterklasse zu meiner Oberklasse und viele Instanzen jeder Unterklasse. Also brauche ich diese Beziehung, damit meine Fixtures Sinn ergeben.
Wenn Sie natürliche Primärschlüssel verwenden, gibt Django keine Primärschlüssel aus. Außerdem ist dies ein Fehler und ich habe einen Patch, um ihn in einer Pull-Anfrage in Djangos GitHub zu reparieren. – jpmelos
Interessant, ich hatte in letzter Zeit ähnliche Zweifel über dieses Thema und dachte, dass dies helfen würde, aber es scheint, dass Ihr Problem ein wenig komplexer ist. Froh, dass Sie einen Workaround dafür gefunden haben. – ihhcarus
Ja, aber danke, dass du versucht hast, trotzdem zu helfen! – jpmelos