【发布时间】:2021-04-23 06:33:25
【问题描述】:
我有一个带有“some_id”的 Django 模型和许多其他带有“some_id”作为主键的模型。
class ModelA(models.Model):
name = models.CharField(max_length=150)
some_id = models.PositiveIntegerField()
[...] # more fields
class ModelB(models.Model):
some_id = models.PositiveIntegerField(primary_key=True)
[...] # more fields
class ModelC(models.Model):
some_id = models.PositiveIntegerField(primary_key=True)
[...] # more fields
如果 ModelB/ModelC 等中存在行,我如何使用布尔字段注释 ModelA 查询集
------------------------------------------
| name | some_id | has_b | has_c |
-----------------------------------------
| John | 1 | True | False |
------------------------------------------
我需要使用“.extra()”吗?或者一些数据库expression
我无法更改模型/表以添加外键关系。
【问题讨论】:
-
请不要这样做。您可以在模型中将其设为
some_id = models.ForeignKey(ModelA, on_delete=models.CASCADE, primary_key=True),或者直接使用模型继承。
标签: python django postgresql inner-join