diff --git a/app/src/interfaces/files/files.vue b/app/src/interfaces/files/files.vue
index 2eb4df2027..2877c70682 100644
--- a/app/src/interfaces/files/files.vue
+++ b/app/src/interfaces/files/files.vue
@@ -135,7 +135,7 @@ import DrawerCollection from '@/views/private/components/drawer-collection.vue';
import Draggable from 'vuedraggable';
import { getAssetUrl } from '@/utils/get-asset-url';
import { adjustFieldsForDisplays } from '@/utils/adjust-fields-for-displays';
-import { get, clamp, isEmpty, isNil, set } from 'lodash';
+import { get, clamp, isNil, set, isEmpty } from 'lodash';
import { usePermissionsStore } from '@/stores/permissions';
import { useUserStore } from '@/stores/user';
import { getFieldsFromTemplate } from '@directus/utils';
diff --git a/app/src/interfaces/list-o2m-tree-view/nested-draggable.vue b/app/src/interfaces/list-o2m-tree-view/nested-draggable.vue
index 1b50265ac8..998e7d6fcc 100644
--- a/app/src/interfaces/list-o2m-tree-view/nested-draggable.vue
+++ b/app/src/interfaces/list-o2m-tree-view/nested-draggable.vue
@@ -87,23 +87,23 @@ export default {
diff --git a/app/src/interfaces/list-o2m/list-o2m.vue b/app/src/interfaces/list-o2m/list-o2m.vue
index c751c30ae5..c54828543f 100644
--- a/app/src/interfaces/list-o2m/list-o2m.vue
+++ b/app/src/interfaces/list-o2m/list-o2m.vue
@@ -474,8 +474,6 @@ function editRow({ item }: { item: DisplayItem }) {
}
function stageEdits(item: Record) {
- if (isEmpty(item)) return;
-
if (newItem) {
create(item);
} else {
diff --git a/app/src/views/private/components/drawer-item.vue b/app/src/views/private/components/drawer-item.vue
index 4304f26287..db2fde67d1 100644
--- a/app/src/views/private/components/drawer-item.vue
+++ b/app/src/views/private/components/drawer-item.vue
@@ -403,6 +403,10 @@ function useActions() {
validationErrors.value = [];
}
+ if (props.junctionField && Object.values(defaultValues.value).some((value) => value !== null)) {
+ internalEdits.value[props.junctionField] = internalEdits.value[props.junctionField] ?? {};
+ }
+
if (props.junctionField && props.relatedPrimaryKey !== '+' && relatedPrimaryKeyField.value) {
set(internalEdits.value, [props.junctionField, relatedPrimaryKeyField.value.field], props.relatedPrimaryKey);
}
diff --git a/packages/composables/src/use-collection.ts b/packages/composables/src/use-collection.ts
index 128ef0ff32..a6875b5198 100644
--- a/packages/composables/src/use-collection.ts
+++ b/packages/composables/src/use-collection.ts
@@ -37,7 +37,7 @@ export function useCollection(collectionKey: string | Ref): Usabl
const defaults: Record = {};
for (const field of fields.value) {
- if (field.schema?.default_value) {
+ if (field.schema !== null && 'default_value' in field.schema) {
defaults[field.field] = field.schema.default_value;
}
}