@@ -166,17 +166,34 @@ If you have smth else (your own implementation of ORM and so on) you will may ov
166166
167167```
168168from typing import Any
169- from io import BytesIO, StringIO
170- from fastadmin import ModelAdmin, register, WidgetType, ExportFormat
169+ from collections import OrderedDict
170+ from fastadmin import ModelAdmin
171171
172172class MyModelAdmin(ModelAdmin):
173173 async def save_model(self, obj: Any, payload: dict, add: bool = False) -> None:
174+ """This method is used to save orm/db model object.
175+
176+ :params obj: an orm/db model object.
177+ :params payload: a payload from request.
178+ :params add: a flag for add or update object.
179+ :return: None.
180+ """
174181 raise NotImplementedError
175182
176183 async def delete_model(self, obj: Any) -> None:
184+ """This method is used to delete orm/db model object.
185+
186+ :params obj: an orm/db model object.
187+ :return: None.
188+ """
177189 raise NotImplementedError
178190
179191 async def get_obj(self, id: str) -> Any | None:
192+ """This method is used to get orm/db model object by id.
193+
194+ :params id: an id of object.
195+ :return: An object or None.
196+ """
180197 raise NotImplementedError
181198
182199 async def get_list(
@@ -187,23 +204,32 @@ class MyModelAdmin(ModelAdmin):
187204 sort_by: str | None = None,
188205 filters: dict | None = None,
189206 ) -> tuple[list[Any], int]:
207+ """This method is used to get list of orm/db model objects.
208+
209+ :params offset: an offset for pagination.
210+ :params limit: a limit for pagination.
211+ :params search: a search query.
212+ :params sort_by: a sort by field name.
213+ :params filters: a dict of filters.
214+ :return: A tuple of list of objects and total count.
215+ """
190216 raise NotImplementedError
191217
192- async def get_export(
193- self,
194- format: ExportFormat | None,
195- offset: int | None = None,
196- limit: int | None = None,
197- search: str | None = None,
198- sort_by: str | None = None,
199- filters: dict | None = None,
200- ) -> StringIO | BytesIO | None:
201- raise NotImplementedError
218+ def get_model_fields(self) -> OrderedDict[str, dict]:
219+ """This method is used to get all orm/db model fields
220+ with saving ordering (non relations, fk, o2o, m2m).
202221
203- def get_model_fields(self) -> list[str]:
222+ :return: An OrderedDict of model fields.
223+ """
204224 raise NotImplementedError
205225
206- def get_form_widget(self, field: str) -> tuple[WidgetType, dict]:
226+ def get_form_widget(self, field_name: str) -> tuple[WidgetType, dict]:
227+ """This method is used to get form item widget
228+ for field from orm/db model.
229+
230+ :params field_name: a model field name.
231+ :return: A tuple of widget type and widget props.
232+ """
207233 raise NotImplementedError
208234
209235```
0 commit comments