Можно ли создать экземпляр подклассовой модели из ее родителя?
class Object1(models.Model):
field1a = models.CharField()
field1b = models.CharField()
feild1c = models.ForeignKey(Object4)
class Object2(Object1):
field3 = models.CharField()
class Object3(Object1):
field3 = models.CharField()
class Object4(models.Model):
field4 = models.CharField()
Что я хочу сделать - это сначала создать базовый класс, а затем на основе какого-либо правила создать экземпляр одного из подклассов, но с использованием уже созданного базового класса.
Что-то вроде:
obj4 = Object4(field4='d')
obj1 = Object1(field1a='a', field1b='b', field1c=obj4)
if somerule:
obj2 = Object2(object1_ptr=obj1, field2='2')
else:
obj3 = Object3(object1_ptr=obj1, field3='3')
Я не хочу повторять поля Object1 в предложениях if / else. Возможно ли это сделать? Когда я пытаюсь это сделать, я получаю ошибку внешнего ключа;
Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполнено