Skip to content

Commit 07efaa8

Browse files
committed
sqlmodel: handle default_factory correctly
1 parent 3c4a8a7 commit 07efaa8

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

fquery/sqlmodel.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import dataclasses
12
from dataclasses import _FIELD, dataclass, field, fields, is_dataclass
23
from datetime import date, datetime, time
34
from typing import (
@@ -99,8 +100,11 @@ def get_field_def(cls, field) -> Union[Field, Relationship]:
99100
return Field(unique=True)
100101

101102
if not sql_meta or not (has_foreign_key or has_relationship):
103+
sql_default_factory = field.default_factory
104+
if isinstance(sql_default_factory, dataclasses._MISSING_TYPE):
105+
sql_default_factory = None
102106
return Field(
103-
default_factory=getattr(cls, field.name, None),
107+
default_factory=sql_default_factory,
104108
# TODO: revisit the idea of using string for unknown types
105109
sa_column=Column(
106110
SA_TYPEMAP.get(field.type, String),

0 commit comments

Comments
 (0)