Internals
Apart from special parameters defined in the Model
during definition (tablename, metadata etc.) the Model
provides you with useful internals.
Pydantic Model
All Model
classes inherit from pydantic.BaseModel
so you can access all normal attributes of pydantic models.
For example to list pydantic model fields you can:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
Tip
Note how the primary key id
field is optional as Integer
primary key by default has autoincrement
set to True
.
Info
For more options visit official pydantic documentation.
Sqlalchemy Table
To access auto created sqlalchemy table you can use Model.ormar_config.table
parameter
For example to list table columns you can:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
Tip
You can access table primary key name by Course.ormar_config.pkname
Info
For more options visit official sqlalchemy-metadata documentation.
Fields Definition
To access ormar Fields
you can use Model.ormar_config.model_fields
parameter
For example to list table model fields you can:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
|
Info
Note that fields stored on a model are classes
not instances
.
So if you print just model fields you will get:
{'id': <class 'ormar.fields.model_fields.Integer'>,
'name': <class 'ormar.fields.model_fields.String'>,
'completed': <class 'ormar.fields.model_fields.Boolean'>}