问题描述
我在3个不同的应用程序中拥有3个模型。
APP 1:
class ModelA(models.Model)
title = models.CharField(max_length=200)
organization = models.ForeignKey(Organization,on_delete=models.CASCADE)
...
APP 2:
class ModelB(models.Model)
title = models.CharField(max_length=200)
organization = models.ForeignKey(Organization,on_delete=models.CASCADE)
...
APP 3:
class ModelC(models.Model)
name = models.CharField(max_length=200)
organization = models.ForeignKey(Organization,on_delete=models.CASCADE)
...
然后我在自己的应用中拥有第4个模型。我想将前面的3个模型组合到一个字段中。
APP 4:
class ModelD(models.Model)
title = models.CharField(max_length=200)
organization = models.ForeignKey(Organization,on_delete=models.CASCADE)
...
union = models.ManyToManyField(ModelA,blank=True)
就像在ModelD中一样,我可以使用一个模型(例如ModelA)建立ManyToMany关系(字段名称为“工会”)。
我正在寻找一种解决方案,可以将所有三个模型组合到一个ManyToMany字段中。就像在下一个执行我所需要的SQL查询中一样。
select id,"modelA" as "model" from app1.modelA
union
select id,"modelB" from app2.modelB
union
select id,"modelC" from app3.modelC
ManyToMany字段创建具有列ModelD_id和ModelA_id的交叉引用表。我假设我还需要一个交叉引用表,其中至少可以存储其他模型对象的modelD_id和id,并且我还需要来自模型的信息以拥有自己的列。就像SQL查询中的列名“模型”一样。
我正在建立复选框列表,以供用户选择正确的项目。
构建它的最佳方法是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)