我很难找到查询以下场景的最有效方法,感谢您的帮助
class Company(models.Model):
name = models.CharField(max_length=100)
class DatapointModel(models.Model):
company = models.ForeignKey(Company, on_delete=models.CASCADE)
name = models.CharField(max_length=255)
value = models.FloatField()
现在我需要所有具有两个有效DatapointModel规则的公司,例如同时具有
的公司datapoint name='country' with value='USA'
和
datapoint name='building_color' with value='blue'
我正在寻找的结果:满足两个数据点规则的公司名称。如果将country和building_color同时存储在Company对象中,这就很简单了但由于数据点太多,我不想这样构建模型我有点纠结于如何用django
查询它除非我误解了你的问题,否则你的过滤器应该是:
Company.objets.filter(
datapointmodel__name="building_color",
datapointmodel___value="blue"
)
你可能需要一些逻辑在那里,使你的名称/值配对工作在一个合理的方式。