如何在Django的多表继承现有带子女的单亲关联

如何在Django的多表继承现有带子女的单亲关联

问题描述:

我有很多现有的记录现有的父实体:如何在Django的多表继承现有带子女的单亲关联

class Entity(models.Model): 
    name = models.CharField('Name', max_length=64, db_index=True) 

我也有扩展使用Django多表继承子对象:

class Investor(Entity): 
    investor_name = models.CharField(max_length=255) 

我想创建可能存在实体的新投资者对象。

如何关联和创建投资者现有的实体?

我找到了一种方法可以做到这一点,如:

child = Restaurant(place_ptr=place) 
child.save_base(raw=True) 

你可以在这里查看完整的线程:https://code.djangoproject.com/ticket/7623

因为

多表继承使用了一个隐含的OneToOneField给孩子和家长

这意味着之间有一个一对一的关系链接,您可以这样做实体命名记录和相应的子类投资者模型。 Django只是把它从多个表格翻译成一个模型,所以你不会注意到它。

所以,当你创建一个投资者,你必须写下面一行

Investor.objects.create(investor_name ='jone', name='entity name') 

,这将创造一个实体排与一个关联到一个关系的投资者表行。所以如果你想创建一个新的投资者对象与现有的实体记录然后数据库一对一关系违反将发生,迄今为止没有任何其他关联语法在Django多重继承。 有关详细信息,你可以看到this link

可以使用现有的实体模型记录,如果你的数据库的设计如下图所示:

class Investor(models.Model): 
    entity = model.ForeignKey(Entity) // Many-to-One relationship 
    investor_name = models.CharField(max_length=255)