内容类型查询按对象值过滤

时间:2018-05-13 08:04:42

标签: python django generics django-orm

我使用Django 2.0.0并具有以下数据库结构:

class Project(models.Model):
    name = models.CharField(_(u'Name'), max_length=32)

class Domain(models.Model):
    project = models.ForeignKey('projects.Project', on_delete=models.CASCADE)
    tool_result = GenericRelation('projects.ToolResult')

class ToolResult(models.Model):
    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey('content_type', 'object_id')

我想基于content_type对象项目获取所有ToolResults过滤器。

ToolResult.objects.filter(content_type=ContentType.objects.get_for_model(Domain), content_object__project__in=[1, 2])

我试过这样但是没有用。我有大约500k域记录和3kk ToolResults记录。这使得迭代对象成为不可能。我该如何才能做到这一点?

0 个答案:

没有答案