Код: Выделить всё
class Model(SqlModel):
columns = ('id', 'details', 'parent_id')
parent: RelatedModel
Model.parent = belongs_to(Model, Model, 'parent_id')
...
def example(some_id, some_other_id):
record = Model.find(some_id)
if not record.parent:
record.parent = Model.find(some_other_id)
record.parent().save()
Пример реализации в синхронном отношении можно найти здесь.
Я скопировал всю модель SQL, построитель запросов и ORM для использования асинхронности. Пример реализации в асинхронном отношении можно найти здесь. Шаблон асинхронного использования аналогичен синхронному:
Код: Выделить всё
class AsyncModel(AsyncSqlModel):
columns = ('id', 'details', 'parent_id')
parent: AsyncRelatedModel
AsyncModel.parent = async_belongs_to(AsyncModel, AsyncModel, 'parent_id')
...
async def example(some_id, some_other_id):
record = await AsyncModel.find(some_id)
if not record.parent:
record.parent = await AsyncModel.find(some_other_id)
await record.parent().save()
Код: Выделить всё
if not record.parentСовет из аналогичного вопроса — переписать функцию так, чтобы она была асинхронной, но это неправдоподобное решение для свойства.
Есть ли решение, не требующее повторного преобразования разработать шаблон использования всей библиотеки или зависит от заброшенного пакета?
Подробнее здесь: https://stackoverflow.com/questions/790 ... -not-produ