Ответ 1
Попробуйте l_magazines.values_list('id', flat=True)
. Это возвращает список идентификаторов вместо списка одиночных кортежей.
У меня есть quirk (?) с фильтрацией запросов Django:
ipdb> MagazineIssue.objects.filter(id__in=l_magazines.values_list('id'))
Out[0]: []
или
ipdb> MagazineIssue.objects.filter(id__in=[l_magazine.id for l_magazine in l_magazines])
Out[0]: [<MagazineIssue: Architecture Australia, Jan 1995 (#1)>]
и
ipdb> l_magazines.values_list('id')
Out[0]: [(1,)]
ipdb> [l_magazine.id for l_magazine in l_magazines]
Out[0]: [1]
так, как использовать values_list()? (для производства):
[1]
или понимает ли список python "способ пойти"?
Попробуйте l_magazines.values_list('id', flat=True)
. Это возвращает список идентификаторов вместо списка одиночных кортежей.
Следует отметить, что существует разница в поведении значений /values _list из понимания списка:
Выбор неправильного приведет либо к ненужным ударам базы данных, либо к ненужным искажениям в зависимости от того, что вы пытаетесь сделать.