ich möchte ein model in ein anderes model konvertieren.
beide models haben die selben felder.
Code: Alles auswählen
class Model_Base(
name = models.CharField('name', max_length=50)
[...]
class Meta:
abstract = True
class Model1(Model_Base):
def __unicode__(self):
return self.name
class Model2(Model_Base):
def __unicode__(self):
return self.name
nun war meine idee eine ModelForm aus Model2 zu erzeugen, diese mit einer instanz von Model1 zu befüllen, und die ModelForm2 abzuspeichern.
dabei soll dann ein Model2 rauskommen, das die werte vom Model1 hat.
tuts aber nicht ":)
es kommt wieder ein Model1 dabei raus.
EDIT:
das lag aber daran, dass ich instance=model1 gesetzt hatte. wenn ich aber einfach nur ModelForm2(model1) aufrufe bekomme ich einen fehler:
Caught AttributeError while rendering: Model1 object has no attribute 'get'
---
wie kann ich also aus Model1 ein Model2 erzeugen? kann mir mal jemand das hirn entknoten?
kann ich vielleicht einfach model.__class__ verändern? und dann erneut abspeichern?
wozu ist die obj._meta.contribute_to_class methode gut? vielleicht genau für so etwas?