Dash 2.0 DataTable Previous Data Loses Column Order
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 24.4k
- Fork
- 2.3k
- Merge medio
- 2g 7h
- PR unite (30g)
- 13
Descrizione
In dash v1.19.0 with dash-table v4.11.2 the data_previous property of a DataTable retained the order of the columns
In dash v2.0.0 this property now returns the columns ordered alphabetically; not based on previous ordering
Minimal reproducible example:
from dash import Dash, Input, Output, State
from dash.exceptions import PreventUpdate
from dash.html import Div, Button
from dash.dash_table import DataTable
from pandas import DataFrame
df = DataFrame(dict(Z=[1, 2, 3], A=[7, 8, 9], L=[4, 5, 6]))
app = Dash(__name__)
table = DataTable(id='table', columns=[dict(name=i, id=i, deletable=True) for i in df.columns],
data=df.to_dict('records'))
undo_button = Button(id='undo-button', children='Undo')
app.layout = Div([Div(table), Div(undo_button)])
@app.callback([Output(table.id, 'columns'), Output(table.id, 'data')],
Input(undo_button.id, 'n_clicks'),
State(table.id, 'data_previous'))
def undo(n_clicks, previous_data):
if n_clicks is None:
raise PreventUpdate
df = DataFrame(previous_data)
return [dict(name=i, id=i, deletable=True) for i in df.columns], df.to_dict('records')
if __name__ == '__main__':
app.run_server()
If I delete any of these columns, and then click the undo button, I expect the deleted column to be restored, and the order of the columns to remain Z, A, L
Initial table:

Deleted column:

Following undo:

Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Eseguire l’esempio minimo riproducibile con le versioni indicate di Dash e dash-table, concentrandosi sulla proprietà data_previous di DataTable dopo l’eliminazione di una colonna. Confrontare l’ordine dei record restituiti tra le versioni e verificare che il ripristino della colonna eliminata mantenga l’ordine originale Z, A, L.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- data-visualization, frontend
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 35/100