Skip to content

Commit ca9dc4c

Browse files
added foreign_key_kwargs to Field
1 parent 43a689d commit ca9dc4c

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

sqlmodel/main.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ def __init__(self, default: Any = Undefined, **kwargs: Any) -> None:
6161
primary_key = kwargs.pop("primary_key", False)
6262
nullable = kwargs.pop("nullable", Undefined)
6363
foreign_key = kwargs.pop("foreign_key", Undefined)
64+
foreign_key_kwargs = kwargs.pop("foreign_key_kwargs", Undefined)
6465
unique = kwargs.pop("unique", False)
6566
index = kwargs.pop("index", Undefined)
6667
sa_column = kwargs.pop("sa_column", Undefined)
@@ -81,6 +82,7 @@ def __init__(self, default: Any = Undefined, **kwargs: Any) -> None:
8182
self.primary_key = primary_key
8283
self.nullable = nullable
8384
self.foreign_key = foreign_key
85+
self.foreign_key_kwargs = foreign_key_kwargs
8486
self.unique = unique
8587
self.index = index
8688
self.sa_column = sa_column
@@ -143,6 +145,7 @@ def Field(
143145
regex: Optional[str] = None,
144146
primary_key: bool = False,
145147
foreign_key: Optional[Any] = None,
148+
foreign_key_kwargs: Optional[Mapping[str, Any]] = None,
146149
unique: bool = False,
147150
nullable: Union[bool, UndefinedType] = Undefined,
148151
index: Union[bool, UndefinedType] = Undefined,
@@ -174,6 +177,7 @@ def Field(
174177
regex=regex,
175178
primary_key=primary_key,
176179
foreign_key=foreign_key,
180+
foreign_key_kwargs=foreign_key_kwargs,
177181
unique=unique,
178182
nullable=nullable,
179183
index=index,
@@ -432,9 +436,10 @@ def get_column_from_field(field: ModelField) -> Column: # type: ignore
432436
nullable = field_nullable
433437
args = []
434438
foreign_key = getattr(field.field_info, "foreign_key", None)
439+
foreign_key_kwargs = getattr(field.field_info, "foreign_key_kwargs", None)
435440
unique = getattr(field.field_info, "unique", False)
436441
if foreign_key:
437-
args.append(ForeignKey(foreign_key))
442+
args.append(ForeignKey(foreign_key, **(foreign_key_kwargs or dict())))
438443
kwargs = {
439444
"primary_key": primary_key,
440445
"nullable": nullable,

0 commit comments

Comments
 (0)