Пытаться
matches = [val for val in Store.attribute_answers.all() if val in WishList.attribute_answers.all()]
Обратите внимание на круглую скобку в конце WishList.attribute_answers.all()
. Добавление круглых скобок вызывает all
функцию для возврата итерации.
Если вы включите круглые скобки, вы говорите: «Дайте мне все значения в ответах из магазинов, если это значение также присутствует в ответах в списках желаний». Без круглых скобок вы запрашиваете все значения из ответов магазина, которые также находятся в all
функции, что бессмысленно. Функция all не является итерируемой (это функция, которая возвращает итерацию)
TL; DR
Для всех, кто находит чтение кода в вопросах как TL; DR
Вместо того
query_set.many_to_many
ты должен использовать
query_set.many_to_many.all()
источник
Здесь busines_type - это foreign_key в модели профиля
pro = Profile.object.filter(user=myuser).first() business_type = pro.business_type.all() if business_type: b_type = '' for b in business_type: b_type += str(b.type)+' ' a = b_type
источник
Я постоянно задаю этот вопрос всякий раз, когда возникает эта проблема. В частности, когда вы пытаетесь перебрать множество функций в функции.
В качестве шаблона вы можете:
array = many_to_many.all() for x in many_to_many: function here
источник