web2py как сделать список: ссылка на другую таблицу в db.py - PullRequest
1 голос
/ 10 марта 2012

У меня есть тег приложения и изображение приложения.

Как сделать ссылку из изображения на базу данных тегов приложения?

приложение тегов db.py:

db.define_table('Tag',
   Field('Name', unique=True),
   format = '%(Name)s')

image app db.py:

db.define_table('Image',
   Field('Nom'),
   Field('Date_Creation',date),
   Field('Tag','list:reference Tag'),
   format = '%(Nom)s')

1 Ответ

1 голос
/ 24 марта 2012

Я думаю, что вы ищете отношения многих со многими; изображения могут иметь много тегов, теги могут принадлежать множеству изображений.

Так что вам понадобится еще одна таблица для хранения этих отношений между ними.

db.define_table('image_tag',
    Field('image', db.Image),
    Field('tag', db.Tag))

Чтобы получить изображения и их теги:

images_tags = db((db.Image.id==db.image_tag.image) & (db.Tag.id==db.image_tag.tag))
for row in images_tags.select():
    print row.Image.Nom, row.Tag.Name
...