Can limit the amount if values a user can input in Dash-Ploty component(可以限制用户可以在Dash-Ploty组件中输入的IF值的数量)
本文介绍了可以限制用户可以在Dash-Ploty组件中输入的IF值的数量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
正在尝试限制用户可以在我的多个下拉列表中输入的输入量。在下面的代码中,我将其设置为最大值4!
此代码不会带回错误,但它的运行方式与我希望的不同。我希望回调在数字超过4时阻止用户输入更多内容。
@app.callback(
[dash.dependencies.Output("input-warning", "children"),
dash.dependencies.Output("dynamic-dropdown", "options")],
[dash.dependencies.Input("dynamic-dropdown", "search_value")],
[dash.dependencies.State("dynamic-dropdown", "value")],
)
def update_multi_options(search_value, value):
conn.rollback()
if search_value is None:
raise PreventUpdate
elif len(value) >= 4:
children = html.P("limit reached",id='input-warning')
return [children, [o for o in OPTIONS if o["value"] in value]]
else:
# Make sure that the set values are in the option list, else they will disappear
# from the shown select list, but still part of the `value`.
return [
o for o in OPTIONS if search_value.upper() in o["label"].upper() or o["value"] in (value or [])
]
我设置了elif
条件以尝试限制输入,但无法使其工作。
如果能就我的代码为何无法实现我想要的效果提供一些指导,我将非常感激。
推荐答案
您可以在达到最大选项数时将每个选项的disabled
键值设置为True
,以便无法再选择其余选项。当您尚未达到阈值时,您可以返回原始选项列表(已隐式启用)。
from dash import Dash, html, dcc
from dash.dependencies import Output, Input
default_options = [
{"label": "A", "value": "A"},
{"label": "B", "value": "B"},
{"label": "C", "value": "C"},
{"label": "D", "value": "D"},
{"label": "E", "value": "E"},
{"label": "F", "value": "F"},
]
app = Dash(__name__)
app.layout = html.Div(
[
dcc.Dropdown(
id="dropdown",
options=default_options,
value=["MTL", "NYC"],
multi=True,
),
html.Div(id="warning"),
]
)
@app.callback(
Output("dropdown", "options"),
Output("warning", "children"),
Input("dropdown", "value"),
)
def update_multi_options(value):
options = default_options
input_warning = None
if len(value) >= 4:
input_warning = html.P(id="warning", children="Limit reached")
options = [
{"label": option["label"], "value": option["value"], "disabled": True}
for option in options
]
return options, input_warning
if __name__ == "__main__":
app.run_server()
这篇关于可以限制用户可以在Dash-Ploty组件中输入的IF值的数量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:可以限制用户可以在Dash-Ploty组件中输入的IF值的数量


猜你喜欢
- 我如何透明地重定向一个Python导入? 2022-01-01
- 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01
- 使用 Cython 将 Python 链接到共享库 2022-01-01
- 我如何卸载 PyTorch? 2022-01-01
- ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01
- 计算测试数量的Python单元测试 2022-01-01
- 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01
- CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01
- YouTube API v3 返回截断的观看记录 2022-01-01
- 如何使用PYSPARK从Spark获得批次行 2022-01-01