我对Web2Py很新,我希望得到一些帮助。
我有一个评论数据库和游戏数据库。
目前,用户可以从列表中点击游戏,然后将他们带到允许他们留下评论的页面。
我可以将评论保存到数据库中,但我无法参考相应的游戏。
DB:
db.define_table('games',
Field('title',requires=IS_NOT_EMPTY()),
Field('description','text',requires=IS_NOT_EMPTY()))
db.define_table('reviews',
Field('title',requires=IS_NOT_EMPTY()),
Field('review','text',requires=IS_NOT_EMPTY()))
Default.py:
def review():
getTitle = db.games(request.args(0)) or redirect(URL('default', 'index'))
formReview = SQLFORM(db.reviews,fields = ['title','review']).process()
if formReview.accepted: redirect(URL('index'))
return dict(formReview=formReview, getTitle=getTitle)
review.html的:
{{extend 'layout.html'}}
<h2>Review a game</h2>
<h2>{{=getTitle.title}}</h2>
{{=formReview}}
我猜我需要在'review'中创建一个字段来获取'request.args'值。但我不确定?
答案 0 :(得分:1)
您应该先展开review
表格,将foreign key
保存到games
表格,如下所示:
db.define_table('reviews',
Field('title',requires=IS_NOT_EMPTY()),
Field('review','text',requires=IS_NOT_EMPTY()),
Field('game_id', 'reference games'))
因此,您可以参考评论的哪个游戏。有了这些附加信息,您应该能够选择游戏的所有评论并在视图中进行渲染。
for row in db(db.reviews.game_id == 1).select():
print row.title # just an example
当然,您还需要在创建新的审核条目时保存相应的game_id
;)
formReview = SQLFORM(db.reviews,fields = ['game_id', 'title','review']).process()