Доступ к значениям отношения один-ко-многим в PonyORM - PullRequest
0 голосов
/ 15 апреля 2019

Для базы данных игр, в которой разные пользователи называют одну и ту же игру разными именами, у меня есть две таблицы, настроенные как один-ко-многим:

class Game(db.Entity):
    name = Set('Name')
    ...

class Name(db.Entity):
    game = Required(Game)
    name = Required(str)
    ...

Как получить доступ к именам дляконкретная игра?Они возвращаются как «Multiset», который (я думаю) является особым объектом Counter, когда я делаю это:

games = Game.select()
for g in games:
    names = g.name.name
    print(names)

>>> Multiset({'Sticks And Stones': 1, 'May Break Your Bones': 1 }) 

Это также кажется мне довольно уродливым, я полагаю, должен быть лучший способ?

1 Ответ

0 голосов
/ 26 мая 2019

Оказывается, метод to_dict(), хорошо документированный в API-справочнике PonyORM , очень помогает при многих отношениях.

 for g in games:
      this_game = g.to_dict(
          with_collections=True,
          related_objects=True,
          exclude=['game_meta', 'statistics']
      )

И затем получить доступ к записям dict (), например: this_game['name']

...