代码之家  ›  专栏  ›  技术社区  ›  Atma

如何在django多任务继承中关联现有父级和子级

  •  3
  • Atma  · 技术社区  · 9 年前

    我有一个现有的母公司,有许多现有记录:

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

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

    我想创建新的投资者对象,可能是现有实体。

    我如何将投资者与现有实体联系起来并创建投资者?

    2 回复  |  直到 9 年前
        1
  •  6
  •   Atma    9 年前

    我找到了一种方法,你可以这样做:

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

    https://code.djangoproject.com/ticket/7623

        2
  •  0
  •   Amir Elltz    9 年前

    你不能这么做,因为

    这意味着两者之间存在一对一的关系 实体 命名记录和相应的子类 模型。Django只处理它从多个表到单个模型的转换,所以你不会真正注意到它。

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

    这将创建与具有一对一关系的实体行关联的投资者表行。所以如果你想创建一个新的 投资者 对象与现有 实体 一对一 有关更多详细信息,请参见 this link

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