Можно ли преобразовать следующее в понимание списка?
cleaned_list = [] for item in dirtry_list: try: item.video except Video.DoesNotExist: pass else: cleaned_list.append(item)
Вы не можете поместить оператор try: в понимание списка. Генераторы существуют для более сложной обработки списка:
try:
def clean(lst): for item in lst: try: item.video except Video.DoesNotExist: pass else: yield item cleaned_list = clean(dirty_list)
Поскольку, основываясь на других ваших вопросах, вы используете Django, просто отметьте поле фактическое .
cleaned_list = [item for item in dirty_list if item.video_id is not None]
Python:
cleaned_list = filter(lambda x: hasattr(x, 'video'), dirty_list)
Джанго: Вы можете сделать следующее, если dirty_list является набором запросов
cleaned_list = dirty_list.filter(video__isnull=False)