Я использую 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')
Я хочу получить все фильтры ToolResults на основе проекта объекта content_type.
ToolResult.objects.filter(content_type=ContentType.objects.get_for_model(Domain), content_object__project__in=[1, 2])
Я пытался так, но это не работает. У меня есть около 500 тыс. Записей доменов и 3 тыс. Записей ToolResults. Это делает невозможным повторение объектов. Как я могу сделать это эффективным?