2012-03-09 56 views
1

我有一个应用程序标签和一个应用程序图像。web2py如何创建列表:db.py中其他表的引用

如何从图像引用应用程序标签数据库?

标签应用db.py:

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

图像应用db.py:

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

回答

1

我认为你正在寻找许多一对多的关系;图像可以有很多标签,标签可以属于许多图像。

所以你需要另一个表来存储这两者之间的关系。

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