Самый эффективный способ использования ORM django при сравнении элементов из двух списков.Python

Программы на Python
Ответить
Anonymous
 Самый эффективный способ использования ORM django при сравнении элементов из двух списков.

Сообщение Anonymous »

Код: Выделить всё

model_one_list = Model1.objects.all()
model_two_list = Model2.objects.filter(...).order_by(..)

for model in model_one_list:
for model2 in model_two_list:
if model.field == model2.field:
another_list.append(model)
Некоторые онлайн-советы по ORM django специально упоминают, чтобы не делать что-то подобное, поскольку оно использует слишком много памяти и снижает производительность. Документы рекомендуют как можно больше придерживаться ORM. возможно.

Я пытался решить проблему выше следующим образом:

Код: Выделить всё

Model1.objects.extra(
where={
'field = app_model2.field'
# Not sure if this works, I think the app_model2 may be wrong idk if i
# can access that
},
)
Но с чем-то вроде этого я не совсем уверен, как с этим справиться.

Также Последний вопрос, который немного связан с этим.
Если у меня есть набор запросов, который нужно ранжировать просто по количеству упорядоченных данных, какой
рекомендуемый способ сделать это без итерации?

Код: Выделить всё

Model1.objects.order_by('something').extra(select={'rank':
"how do i get the rank in mysql??? like while its
iterating, is this even possible"})
Спасибо за помощь.

Подробнее здесь: https://stackoverflow.com/questions/126 ... -two-lists
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»