Код в определении класса выполняется во время импорта, а не при создании экземпляра класса. Вам нужно переместить доступ к session
методу __init__
, чтобы он был доступен при создании формы в функции просмотра.
class Institution(Form):
organization = SelectField()
def __init__(self, *args, **kwargs):
self.organization.kwargs['choices'] = [(x, x) for x in session.get('city', ('not set',))]
Form.__init__(self, *args, **kwargs)
Это относится ко всему, что требует приложения или контекст запроса, такой как запрос к базе данных, а не только session
.
Используя ваш код, я получаю ожидаемый результат:
x = np.zeros((10,))
x[:3] += 1
x
array([1., 1., 1., 0., 0., 0., 0., 0., 0., 0.])
x[2:] += x[:-2]
x
array([1., 1., 2., 1., 1., 0., 0., 0., 0., 0.])