From 3406be3ff88b8e58c4da8e3753a17a1a59b47116 Mon Sep 17 00:00:00 2001 From: Martin Xu <15661672+martinxu9@users.noreply.github.com> Date: Fri, 8 Sep 2023 14:51:57 -0700 Subject: [PATCH] supply default for sqlmodel PK for both DB and python to work (#1788) --- reflex/model.py | 2 +- tests/test_model.py | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/reflex/model.py b/reflex/model.py index c8724f736..f579784d4 100644 --- a/reflex/model.py +++ b/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.""" diff --git a/tests/test_model.py b/tests/test_model.py index 0359d1917..accab52fe 100644 --- a/tests/test_model.py +++ b/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):