Working with Select Fields
Select reads preserve the option identity returned by Baserow. A single-select
value is a baserowapi.SelectOption or None; a multiple-select value
is a list of SelectOption records. Each record exposes id, value,
color, and the complete returned metadata in raw.
row = table.get_row(1)
selected = row['Status']
print(selected.id, selected.value, selected.color)
for option in table.fields['Status'].options:
print(option.id, option.value)
Writes accept the forms documented by Baserow. A single-select field accepts an
option ID, label, returned object, SelectOption, or None. A
multiple-select field accepts lists of IDs, labels, returned objects, or
SelectOption records, as well as Baserow’s comma-separated label form. Use
an empty list to clear a multiple-select field; baserow.io rejects None for
that operation.
row.update({'Status': selected})
row.update({'Status': selected.id})
row.update({'Status': 'Open'})
row.update({'Tags': ['Urgent', 'Customer']})
row.update({'Tags': 'Urgent, Customer'})
row.update({'Tags': []})
Baserow resolves label writes. When code needs deterministic local resolution,
field.resolve_option(label) returns the unique configured option and raises
FieldValidationError if the label is missing or duplicated. Prefer an ID or
SelectOption for writes that must remain unambiguous.