У меня есть список, и я должен удалить из него все элементы, которые содержатся в другом списке.Django, функция exclude() в списке
Итак, у меня было бы что-то вроде 'exclude
' queryset, но в списке.
Теперь это мой код:
list = Friend.objects.friends(self.request.user)
i_am_blocking = User.objects.filter(blocks_received__user_blocking=self.request.user)
is_blocking_me = User.objects.filter(blocks_set__user_blocked=self.request.user)
blocked_users = list(chain(i_am_blocking, is_blocking_me))
и теперь я хотел бы, чтобы удалить из «list
» всех элементов, которые содержатся в «blocked_users
».
Есть ли лучший способ сделать это?
хорошо, это хорошо работает. Как вы думаете, это хороший способ (эффективный) сделать это? Вы видите улучшения? – Safari
Это зависит от количества firends и заблокированных пользователей. Вы должны проверить его самостоятельно. Я добавил альтернативное решение на основе ORM для ответа. Это может быть более эффективным, чем манипулирование данными в python. – catavaran
Спасибо за ваше обновление. Невозможно использовать .exclude, потому что Friend.objects.friends (self.request.user) возвращает «список», а не набор запросов. Итак, я получу ошибку, подобную этой: объект «list» не имеет атрибута «exclude» – Safari