diff --git a/docs/fields/common-parameters.md b/docs/fields/common-parameters.md index 79dde76..d5a4c0d 100644 --- a/docs/fields/common-parameters.md +++ b/docs/fields/common-parameters.md @@ -101,7 +101,33 @@ Sample usage: !!!info `server_default` is passed straight to sqlalchemy table definition so you can read more in [server default][server default] sqlalchemy documentation - + +## name + +`name`: `str` = `None` -> defaults to None + +Allows you to specify a column name alias to be used. + +Useful for existing database structures that use a reserved keyword, or if you would like to use database name that is different from `ormar` field name. + +Take for example the snippet below. + +`from`, being a reserved word in python, will prevent you from creating a model with that column name. + +Changing the model name to `from_` and adding the parameter `name='from'` will cause ormar to use `from` for the database column name. + +```python + #... rest of Model cut for brevity + from_: str = ormar.String(max_length=15, name='from') +``` + +Similarly, you can change the foreign key column names in database, while keeping the desired relation name in ormar: + +```python + # ... rest of Model cut for brevity +album: Optional[Album] = ormar.ForeignKey(Album, name="album_id") +``` + ## index `index`: `bool` = `False` -> by default False, @@ -147,4 +173,4 @@ Used in pydantic only. [relations]: ../relations/index.md [queries]: ../queries/index.md [pydantic]: https://pydantic-docs.helpmanual.io/usage/types/#constrained-types -[server default]: https://docs.sqlalchemy.org/en/13/core/defaults.html#server-invoked-ddl-explicit-default-expressions \ No newline at end of file +[server default]: https://docs.sqlalchemy.org/en/13/core/defaults.html#server-invoked-ddl-explicit-default-expressions