LINUX.ORG.RU

Python Peewee One-to-one

 , , , ,


1

1

Собственно, кто работал с этой библиотекой, м.б подскажет, как тут сделать one-to-one связь? Т.е есть таблица и есть таблица на ее расширенные свойства. В каждой из таблиц должны быть ключи друг на друга. В SQAlchemy можно было просто использовать uselist=False. А тут есть только backref, как я понял. И создает он именно список.

Почему не взял SQAlchemy - peewee-async. Для SQLAlchemy ничего похожего не находил. Был, конечно, Gino для SQLA. Но я один раз взял его, намучался, и больше как-то не хочется.

P.S Прошу не разводить срач на тему Peewee vs SQAlchemy, а просто ответить, если кто использовал и знает.

Проглядывается XY-проблема.
Давай сразу X.

class Person(Model):
    name = TextField()

class Account(Model):
    person = ForeignKeyField(Person, backref='accounts', unique=True)
    account_data = TextField()

query = (Person
         .select(Person, Account)
         .join(Account, JOIN.LEFT_OUTER, attr='account')  # To get people w/no account
         .order_by(Person.name))
# This is efficiently done in a single query:
for person in query:
    print(person.name, person.account.account_data)

Goury ★★★★★
()
Последнее исправление: Goury (всего исправлений: 2)
Ответ на: комментарий от beresk_let

Потому что primary_key уже есть, вестимо

Goury ★★★★★
()
Ответ на: комментарий от crarkie

Ну так и закрывай, специальный чекбокс же есть для этого

Goury ★★★★★
()
Ответ на: комментарий от Goury

А что там с проблемой Х?

Грубо говоря, у нас есть аккаунт, и есть специальные данные финансового счета для него. Не хочется все данные сводить в одну таблицу. Разделить на логические сущности

crarkie
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.