Skip to content

Commit 1e3359a

Browse files
committed
🐛 Support mixins.
1 parent 8e97c93 commit 1e3359a

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

sqlmodel/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ def __init__(
323323
# triggers an error
324324
base_is_table = False
325325
for base in bases:
326-
config = getattr(base, "__config__")
326+
config = getattr(base, "__config__", None)
327327
if config and getattr(config, "table", False):
328328
base_is_table = True
329329
break

tests/test_mixin.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from typing import Optional
2+
3+
import pytest
4+
from sqlmodel import Field, SQLModel
5+
6+
7+
class FooMixin:
8+
pass
9+
10+
11+
@pytest.mark.usefixtures("clear_sqlmodel")
12+
def test_mixin():
13+
class Hero(FooMixin, SQLModel, table=True):
14+
id: Optional[int] = Field(default=None, primary_key=True)
15+
name: str
16+
secret_name: str
17+
age: Optional[int] = None

0 commit comments

Comments
 (0)