2016-09-13 4 views
0

Если у меня есть полиморфная модель:Изменения полиморфного типа содержимого экземпляра Джанго модели

class Father(polymorphic.model.PolymorphicModel) 

и класс наследодателя без дополнительных полей:

class Child(Father) 

Когда у меня есть экземпляр Отец , как я могу преобразовать его в экземпляр Child?

То, что я попытался это:

foo = Father.objects.get(pk=1) 
# foo is just a Father, no record in Child database table. 
foo.polymorphic_ctype = ContentType.objects.get(app_label='myapp', model='child') 
foo.save() 

Но ничего не меняется. Я хочу, чтобы foo был дочерним объектом и должен иметь это в таблице дочерней базы данных.

ответ

0

Хорошо.

После прочтения этого подобное post я понял, что мне нужно другое назначение:

foo.__class__ = Child 

Это делает вставку в таблицу ребенка в противном случае никогда не произошло.