【发布时间】:2020-08-06 08:48:18
【问题描述】:
我的目标是使用实体类型和实体 id 的引用从不同模型中检索数据。
示例: 我有客户模型和地址模型
from django.db import models
class Customer(models.Model):
name = models.CharField(null=False, blank=False, max_length=255)
email = models.EmailField(null=False, blank=False, unique=True)
class Address(models.Model):
entity_type = models.CharField(null=False, max_length=255)
entity_id = models.PositiveIntegerField(null=False)
address1 = models.CharField(max_length=255)
address2 = models.CharField(max_length=255)
现在我使用原始查询
cursor.execute("SELECT * FROM customers AS cust
INNER JOIN addresses AS addrs ON
(cust.id = addrs.entity_id AND 'customer' = addrs.entity_type)
WHERE cust.id IN (%s)", [ids])
但这不是好的解决方案。 id 在数千范围内时花费太多时间。
如果有任何其他方式来存档这些数据。那么请在 cmets 中给出你的解决方案..
【问题讨论】:
-
恭喜,你刚刚改造了 Django 的generic relationsxD
标签: django database postgresql django-models django-orm