Dash datepicker max_date_allowed 当前日期无法正常工作

Pri*_*dey 5 python datepicker amazon-web-services amazon-elastic-beanstalk plotly-dash

我的仪表板使用 dash,并部署在 AWS Elastic Beanstalk 上。
Datepicker 中存在问题。我正在使用 max_date_allowed=dt.date(dt.now())

因此,在部署应用程序的那天,一切都运行良好。但从第二天开始, max_date_allowed 会固定为应用程序部署的日期,并且我们无法选择超出应用程序部署日期的日期。
仅当我们在环境中从操作菜单中选择重新启动应用程序服务器时,它才会再次起作用。

这里可能有什么问题?

下面是我们使用的日期选择器片段。

dcc.Tabs([
        dcc.Tab(label='DDR by Date (Default DDR - Last Day)', value='tab-1', children=[
            dcc.DatePickerSingle(
                id='my-date-picker-single',
                min_date_allowed=dt(2020, 1, 18),
                max_date_allowed=dt.date(dt.now()),
                initial_visible_month=dt.date(dt.now()),
                placeholder='Select a date',
                display_format='DD/MM/YYYY'
            ),
            html.Button(id='submit-button', n_clicks=0, children='Submit'),
            html.Div(id='output-container-date-picker-single')
        ]),
Run Code Online (Sandbox Code Playgroud)

emh*_*her 4

假设代码片段是应用程序布局定义的一部分,您看到的行为是预期的。此代码在应用程序启动时执行,dt.date(dt.now())因此仅在此时进行评估。

有(至少)两种常见的方法可以实现你想要的,

  • 将布局定义包装在函数中,并将函数实例指定为应用程序布局。代码类似于app.layout = make_my_layout_function. 通过分配函数,每次用户访问您的页面时都会评估应用程序布局代码。请参阅文档中的更多详细信息(滚动到“页面加载更新”)。

  • 根据您的情况,通过回调分配非静态默认值max_date_allowed。由于回调是在页面加载时执行的(除非您主动阻止它),因此该值将按预期更新。