diff --git a/ormar/models/model.py b/ormar/models/model.py index 264c6a2..4eb0c29 100644 --- a/ormar/models/model.py +++ b/ormar/models/model.py @@ -191,7 +191,7 @@ class Model(ModelRow): value = [value] for val in value: - if not val.saved or save_all: + if (not val.saved or save_all) and not val.__pk_only__: await val.upsert() update_count += 1 if follow: diff --git a/tests/test_queries/test_deep_relations_select_all.py b/tests/test_queries/test_deep_relations_select_all.py index 7cef48e..948b81f 100644 --- a/tests/test_queries/test_deep_relations_select_all.py +++ b/tests/test_queries/test_deep_relations_select_all.py @@ -155,4 +155,4 @@ def create_test_database(): async def test_saving_related_fk_rel(): async with database: async with database.transaction(force_rollback=True): - await Report.objects.select_all(follow=True).all() \ No newline at end of file + await Report.objects.select_all(follow=True).all()