Вы можете повысить производительность, сделав базу данных index для столбца resource_ref
:
class Resource(models.Model):
name = models.CharField(max_length=128)
resource_ref = models.CharField(max_length=128<b>, db_index=True</b>)
def __str__(self):
return self.name
, это повысит поиск.
Кроме того, мы можем объединитьдва набора запросов и запрос с помощью:
resource = Resource.objects.filter(
<b>resource_ref__in=Area.objects.values('area_ref')</b>
)
Затем будет выполнен подзапрос для получения элементов, которые должны быть извлечены.
Но, похоже, вы "имитируете" a ForeignKey
[Джанго-док] здесь. Похоже, что и Area
, и Resource
имеют какое-то отношение к "третьей модели". Возможно, было бы лучше ввести отношения, поскольку база данных может проверять ссылочную целостность, и это делает запрос более удобным.