В настоящее время мое приложение Django содержит миллионы записей, и я хочу обновить его на основе значения ManyToMany
связанных полей.
Следовательно, то, что я сделал, работает, но это заняло так много раз. Чтобы обновить только три записи, он использует 13 запросов.
Record
модель имеет поле genres
, которое является полем ManyToMany
. Также имеет поле authors
, которое также является полем ManyToMany
.
И, наконец, модель Author
имеет поле ManyToMany
, которое подразумевает genres
.
for i in Record.objects.filter(authors__popular=True).only("authors", "genres"):
for a in i.authors.all():
print(a.name) # test purpose
for genre in i.genres.all():
if a.genres.exists():
a.genres.add(genre)
Когда я запускаю len(connection.queries)
, он показывает номера запросов, которые выполнялись, я хочу, чтобы он был меньше 13.