Skip to content

Commit

Permalink
fix(django_datasource): django datasource now works when model fields…
Browse files Browse the repository at this point in the history
… uses 'db_column'
  • Loading branch information
jbarreau committed Nov 28, 2023
1 parent 3b06674 commit 8ebc2bd
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 7 deletions.
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,9 @@ cover/
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
*.sqlite3
*.sqlite
*.sqlite3-journal

# Flask stuff:
instance/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ def _build_one_to_many(relation: ManyToOneRel) -> Optional[OneToMany]:
return {
"foreign_collection": relation.target_field.model.__name__,
"origin_key": relation.field.column,
"origin_key_target": relation.field.target_field.column,
"origin_key_target": relation.field.target_field.attname,
"type": FieldType.ONE_TO_MANY,
}

Expand All @@ -101,7 +101,7 @@ def _build_many_to_one(relation: Union[OneToOneField, ForeignKey, ManyToOneRel])
return {
"foreign_collection": relation.target_field.model.__name__,
"foreign_key": foreign_key,
"foreign_key_target": relation.target_field.name,
"foreign_key_target": relation.target_field.attname,
"type": FieldType.MANY_TO_ONE,
}

Expand All @@ -110,7 +110,7 @@ def _build_one_to_one(relation: OneToOneRel) -> OneToOne:
return {
"foreign_collection": relation.target_field.model.__name__,
"origin_key": relation.field.column,
"origin_key_target": relation.field.target_field.name,
"origin_key_target": relation.field.target_field.attname,
"type": FieldType.ONE_TO_ONE,
}

Expand All @@ -132,11 +132,11 @@ def _build_many_to_many(relation: Union[ManyToManyField, ManyToManyRel]) -> Many
if field.related_model == relation.model:
# origin
kwargs["origin_key"] = field.column
kwargs["origin_key_target"] = field.target_field.name
kwargs["origin_key_target"] = field.target_field.attname
elif field.related_model == relation.target_field.model:
# foreign
kwargs["foreign_key"] = field.column
kwargs["foreign_key_target"] = field.target_field.name
kwargs["foreign_key_target"] = field.target_field.attname

return ManyToMany(type=FieldType.MANY_TO_MANY, foreign_relation=None, **kwargs)

Expand Down

0 comments on commit 8ebc2bd

Please sign in to comment.