Web2Py获取/发布值

2024-05-29 02:09:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Web2Py的新手,希望能得到一些帮助

我有一个评论数据库和一个游戏数据库

此时,用户可以从列表中单击一个游戏,并将他们带到一个页面,允许他们留下评论

我可以将评论保存到DB中,但我无法让它引用相应的游戏

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}}

我猜我需要在“reviews”中创建一个字段,该字段将获得“request.args”值。但我不确定


Tags: 数据库游戏fielddbtitleis评论not
1条回答
网友
1楼 · 发布于 2024-05-29 02:09:59

您应该首先展开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()

相关问题 更多 >

    热门问题