Flask-SQLAlchemy @staticmethod delay - PullRequest
       11

Flask-SQLAlchemy @staticmethod delay

0 голосов
/ 29 апреля 2018

В моем models.py есть класс с этим статическим методом:

...
@staticmethod
def get_past_jobs():
    return Job.query.filter(Job.date < datetime.datetime.utcnow()).all()
...

Это происходит через (не относящуюся к делу) past_jobs_pretty() функцию форматирования, которая используется при построении формы (WTForms):

...
job = SelectField('Past Job', choices=past_jobs_pretty(), validators=[DataRequired()])
...

Проблема заключается в следующем: при обновлении Job.date (через браузер SQLite) изменения не отражаются в SelectField до тех пор, пока я не перезапущу сервер разработки.

Теория: Полагаю, это связано с тем, что @staticmethod получает строки сразу после запуска сервера. Последующие вызовы get_past_jobs() вернут те же строки из-за природы статических методов.

Если это правильно, какая альтернатива? Я пытался использовать @classmethod, но безрезультатно - тот же результат.

С нетерпением жду помощи.

1 Ответ

0 голосов
/ 29 апреля 2018

последовал этот ответ и добавил следующее к форме:

def __init__(self, *args, **kwargs):
    super(FeedbackForm, self).__init__(*args, **kwargs)
    self.job.choices = past_jobs_pretty()
...