Kaynağa Gözat

supply default for sqlmodel PK for both DB and python to work (#1788)

Martin Xu 1 yıl önce
ebeveyn
işleme
3406be3ff8
2 değiştirilmiş dosya ile 5 ekleme ve 4 silme
  1. 1 1
      reflex/model.py
  2. 4 3
      tests/test_model.py

+ 1 - 1
reflex/model.py

@@ -54,7 +54,7 @@ class Model(Base, sqlmodel.SQLModel):
     """Base class to define a table in the database."""
 
     # The primary key for the table.
-    id: Optional[int] = sqlmodel.Field(primary_key=True)
+    id: Optional[int] = sqlmodel.Field(default=None, primary_key=True)
 
     def __init_subclass__(cls):
         """Drop the default primary key field if any primary key field is defined."""

+ 4 - 3
tests/test_model.py

@@ -1,3 +1,4 @@
+from typing import Optional
 from unittest import mock
 
 import pytest
@@ -20,7 +21,7 @@ def model_default_primary() -> Model:
     class ChildModel(Model):
         name: str
 
-    return ChildModel(name="name")  # type: ignore
+    return ChildModel(name="name")
 
 
 @pytest.fixture
@@ -32,10 +33,10 @@ def model_custom_primary() -> Model:
     """
 
     class ChildModel(Model):
-        custom_id: int = sqlmodel.Field(default=None, primary_key=True)
+        custom_id: Optional[int] = sqlmodel.Field(default=None, primary_key=True)
         name: str
 
-    return ChildModel(name="name")  # type: ignore
+    return ChildModel(name="name")
 
 
 def test_default_primary_key(model_default_primary):