Populate columns on data_editor edits

I am editing a table in snowflake using data_editor.

I love it, I can have my customers do so much with it! I can already see it.

However, I would like to automatically populate the edited_by and edited_ts values (columns for it already exist in the source table) when a row is modified. Rows that are left unmodified should not get this value attached. Ideally, at the end, the user clicks a submit button and the data is written back to the database.

Is there any example of how I might go about doing this?


Hey Serban,

Thanks for sharing your question! By “when a row is modified”, do you mean when the row is modified by a user in the app or when someone edits the data in Snowflake?

Hi Caroline,

Thank you for your reply. I meant to say, when the row is modified by a user in streamlit.

Assuming your app is private, you can use st.experimental_user to set the value of edited_by to the current logged-in user’s email address via an on_change callback function for your st.data_editor.

That’s wonderful to hear, are there any examples I can draw inspiration from? I suspected it would be a on_change callback but I have never used the functionality before.

Hi! Think you might be able to share an example of how this is supposed to work with the on_change callback function? I have a similar requirement.