Fix for CSV labels=on missing foreign key bug, closes #2214

This commit is contained in:
Simon Willison 2023-12-22 15:08:11 -08:00
commit 872dae1e1a
2 changed files with 43 additions and 6 deletions

View file

@ -553,16 +553,18 @@ async def stream_csv(datasette, fetch_data, request, database):
if cell is None:
new_row.extend(("", ""))
else:
assert isinstance(cell, dict)
new_row.append(cell["value"])
new_row.append(cell["label"])
if not isinstance(cell, dict):
new_row.extend((cell, ""))
else:
new_row.append(cell["value"])
new_row.append(cell["label"])
else:
new_row.append(cell)
await writer.writerow(new_row)
except Exception as e:
sys.stderr.write("Caught this error: {}\n".format(e))
except Exception as ex:
sys.stderr.write("Caught this error: {}\n".format(ex))
sys.stderr.flush()
await r.write(str(e))
await r.write(str(ex))
return
await limited_writer.write(postamble)