Ответ 1
Вы назначаете что-то новое для images['cover']
:
images['cover'] = pic.path_thumb_l
где pic.path_thumb_l
есть None
в некоторой точке вашего кода.
Вероятно, вы хотели бы добавить:
images['cover'].append(pic.path_thumb_l)
Я вижу странное поведение в этом коде:
images = dict(cover=[],second_row=[],additional_rows=[])
for pic in pictures:
if len(images['cover']) == 0:
images['cover'] = pic.path_thumb_l
elif len(images['second_row']) < 3:
images['second_row'].append(pic.path_thumb_m)
else:
images['additional_rows'].append(pic.path_thumb_s)
Мое приложение web2py дает мне эту ошибку:
if len(images['cover']) == 0: TypeError: object of type 'NoneType' has no len()
Я не могу понять, что в этом плохого. Может быть, проблема с областью?
Вы назначаете что-то новое для images['cover']
:
images['cover'] = pic.path_thumb_l
где pic.path_thumb_l
есть None
в некоторой точке вашего кода.
Вероятно, вы хотели бы добавить:
images['cover'].append(pic.path_thumb_l)
Ваша проблема в том, что
if len(images['cover']) == 0:
проверяет ДЛИННОСТЬ значения изображений ['cover'], что вы хотели сделать, это проверить, имеет ли оно значение.
сделайте это вместо:
if not images['cover']:
При первом назначении: images['cover'] = pic.path_thumb_l
он заменяет значение пустого списка, первоначально сохраненного в images['cover']
, значением pic.path_thumb_l
, которое равно None
.
Возможно, ваш код в этой строке должен быть images['cover'].append(pic.path_thumb_l)