Правильный способ выполнения обратного вызова Da sh с созданной таблицей? - PullRequest
0 голосов
/ 02 мая 2020

Я использую эти данные:

data = {"domains": {}}
data["domains"]["www.somedomain.com"] = {"status": "Editing"}
data["domains"]["www.otherdomain.com"] = {"status": "Disabled"}

Эта функция генерации таблицы:

def generate_table(dataframe, max_rows=10):
    rows = []
    header = [html.Tr(children=[
        html.Th("Domain"),
        html.Th("Status"),
        ], id='header')]


    for domain,info in data["domains"].items():
        status = "Unregistered"
        if "status" in info:
            status = info["status"]
        rows.append(
            html.Tr(children=[
                html.Td( html.Strong(domain,style={'padding': pad})),
                html.Td( dcc.RadioItems(
                    options=[
                        {'label': 'Unregistered', 'value': 'Unregistered'},
                        {'label': 'Registered', 'value': 'Approval'},
                        {'label': 'Editing', 'value': 'Editing'},
                        {'label': 'Edited', 'value': 'Edited'},
                        {'label': 'Disabled', 'value': 'Disabled'}
                    ], value=status, labelStyle = { 'display': 'inline-block', 'padding': pad}, style={'display': 'inline', 'width': '10%', 'padding': pad})),
                ]))

    table = html.Table(header + rows, id="table")

    return table

И эта раскладка:

app.layout = html.Div([
    html.Div(children=[
            generate_table(data)
        ],style={'columnCount': 1}),
    html.Div(id='mydiv')
    ], style={'margin': '30px', 'columnCount': 1})

Я пытаюсь чтобы сделать так, что выбор радиосвязи в строке обновляет этот элемент status в данных. Тем не менее, я могу думать только о том, чтобы сделать это с помощью обратного вызова с вводом «таблица», и вручную проходить через каждую строку и извлекать все данные. Это кажется очень неуклюжим, и я хочу посмотреть, есть ли лучший способ сделать это?

Я предполагаю, что у меня не может быть отдельных обратных вызовов для каждой строки?

...