2012-03-09 54 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