Skip to content

Commit 4580ca6

Browse files
committed
datamodel fix
1 parent a03a6bb commit 4580ca6

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

datamodel/base.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,20 @@ def _get_ref_info(_type, field):
6262
}
6363
elif isinstance(_type, ModelMeta):
6464
_schema = _type.schema(as_dict=True)
65+
if 'fk' not in field.metadata:
66+
ref = _schema.get('$id', f"/{_type.__name__}")
67+
else:
68+
_id, _value = field.metadata.get('fk').split("|")
69+
ref = {
70+
"api": field.metadata.get('api', _schema['table']),
71+
"id": _id,
72+
"value": _value,
73+
"$ref": _schema.get('$id', f"/{_type.__name__}")
74+
}
6575
return {
6676
"type": "object",
6777
"schema": _schema,
68-
"$ref": _schema.get('$id', f"/schemas/{_type.__name__}"),
78+
"$ref": ref,
6979
"columns": field.metadata.get('fk').split("|") if 'fk' in field.metadata else []
7080
}
7181
return None

datamodel/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
__title__ = 'python-datamodel'
44
__description__ = ('simple library based on python +3.8 to use Dataclass-syntax'
55
'for interacting with Data')
6-
__version__ = '0.6.12'
6+
__version__ = '0.6.13'
77
__author__ = 'Jesus Lara'
88
__author_email__ = '[email protected]'
99
__license__ = 'BSD'

examples/form_schema.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class Meta:
6969

7070
class BadgeAssign(BaseModel):
7171
reward_id: Reward = Field(
72-
required=True, fk='reward_id|reward', endpoint='rewards', label="Badge"
72+
required=True, fk='reward_id|reward', api='rewards', label="Badge"
7373
)
7474
reward: str = Field(repr=False)
7575
receiver_email: Employee = Field(

0 commit comments

Comments
 (0)