我可以对OneToMany关系进行注释以提高绩效吗?

时间:2019-08-03 01:47:59

标签: django performance django-aggregation

我有以下简化的模型。

class Service(models.Model):
    ...

class ServiceLogs(models.Model):
    service = models.ForeignKey(Service, related_name='logs', ...)
    who_did = models.ForeignKey(User, ...)
    role_played = models.CharField(choices=(('CA','CA'),
                                            ('CO', 'CO'),
                                            ('TO', 'TO')), ...)

我知道我可以通过打电话来找出谁扮演了什么角色 <service obj>.logs.filter(role='CA'),但是考虑到我有3个角色,这种方法对每个对象访问数据库3次。

我正在阅读有关聚集和注释的文档,但是所有示例都使用诸如Sum,Avg等的数值。我尝试使用Q进行查找,但Django抱怨消息'WhereNode' object has no attribute 'output_field' < / p>

我可以提高查询效率,以便每个对象访问数据库一次吗?

0 个答案:

没有答案