diff --git a/react-openapi/src/components/ResourceDetail.tsx b/react-openapi/src/components/ResourceDetail.tsx
index c7a3f5e..188c943 100644
--- a/react-openapi/src/components/ResourceDetail.tsx
+++ b/react-openapi/src/components/ResourceDetail.tsx
@@ -64,7 +64,19 @@ export function ResourceDetail({ resource, basePath }: ResourceDetailProps) {
Back
- {applyDisplayFormat(data, resource.displayFormat)}
+ {applyDisplayFormat(
+ Object.fromEntries(
+ resource.orderedFields.map((field) => {
+ const value = data[field.name];
+ if (field.fk && typeof value === "object" && value != null) {
+ const target = allResources.find((r) => r.name === field.fk!.resource);
+ if (target) return [field.name, applyDisplayFormat(value, target.displayFormat)];
+ }
+ return [field.name, value];
+ })
+ ),
+ resource.displayFormat
+ )}
{resource.operations.update && (
} onClick={() => navigate(`${basePath}/${resource.name}/${id}/edit`)}>