Skip to content

Commit 33476e8

Browse files
committed
enhancing primary key check to be compatible with sqlmodel
1 parent 6b521d5 commit 33476e8

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

aredis_om/model/model.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1524,7 +1524,7 @@ def validate_primary_key(cls):
15241524
else:
15251525
field_info = field.field_info
15261526

1527-
if getattr(field_info, "primary_key", None):
1527+
if getattr(field_info, "primary_key", None) is True:
15281528
primary_keys += 1
15291529
if primary_keys == 0:
15301530
raise RedisModelError("You must define a primary key for the model")
@@ -1805,7 +1805,7 @@ def schema_for_fields(cls):
18051805
else:
18061806
field_info = field.field_info
18071807

1808-
if getattr(field_info, "primary_key", None):
1808+
if getattr(field_info, "primary_key", None) is True:
18091809
if issubclass(_type, str):
18101810
redisearch_field = (
18111811
f"{name} TAG SEPARATOR {SINGLE_VALUE_TAG_FIELD_SEPARATOR}"
@@ -2000,7 +2000,7 @@ def schema_for_fields(cls):
20002000
field_info = field.field_info
20012001
else:
20022002
field_info = field
2003-
if getattr(field_info, "primary_key", None):
2003+
if getattr(field_info, "primary_key", None) is True:
20042004
if issubclass(_type, str):
20052005
redisearch_field = f"$.{name} AS {name} TAG SEPARATOR {SINGLE_VALUE_TAG_FIELD_SEPARATOR}"
20062006
else:

tests/test_json_model.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1157,3 +1157,14 @@ class TestLiterals(JsonModel):
11571157
await item.save()
11581158
rematerialized = await TestLiterals.find(TestLiterals.flavor == "pumpkin").first()
11591159
assert rematerialized.pk == item.pk
1160+
1161+
1162+
@py_test_mark_asyncio
1163+
async def test_two_false_pks():
1164+
from pydantic_core import PydanticUndefined as Undefined
1165+
1166+
class SomeModel(JsonModel):
1167+
field1: str = Field(index=True, primary_key=Undefined)
1168+
field2: str = Field(index=True, primary_key=Undefined)
1169+
1170+
SomeModel(field1="foo", field2="bar")

0 commit comments

Comments
 (0)