2016-04-29 7 views
0

&には、データベースに保存されたフォームを送信するユーザーの名前を保存する方法を教えてください。例えばフォームの作成者を保存Web2Py

私は、ユーザーが製品を確認できるようにするためのフォームを持っています。 私はこれらのレビューを記載したテーブルを持っています。 テーブルの上に、各レビューのほかに各ユーザーの名前をリストします。

+0

web2pyについてはわかりませんが、レビューテキストを保存したのと同じ方法で、送信者の名前をデータベースに保存することができます。または、あなたの質問は「私のフォームを使用している人の名前をどのように決定するのですか?」ですか?私はそれがあなたのユーザーエージェントや何かから抽出できるものだとは思わない - あなたはそれのための入力フィールドを持っている必要があります。 – Kevin

+0

これは私が目指していることですが、ユーザー名をレビューと同時にレビューデータベースに保存できますか?彼らは自分自身を入力する必要はありません。ユーザフィールドにその詳細をあらかじめ入力する。 – Gareth

答えて

1

あなたはdb.auth_userテーブルを指し示す参照フィールドを追加することができます(または、ユーザーデータを格納どんなテーブルする):上記のコードでは

db.define_table('review', 
    ..., 
    Field('reviewer', 'reference auth_user', default=auth.user_id, writable=False), 
    ...) 

、「校閲」フィールドのデフォルト値は現在ログインしているユーザーのID。フィールドは書き込み可能ではないため、ユーザーはそれを変更する方法がありません(レビューエントリーフォームでは、readable属性をFalseに設定することもできます)。

joinを実行するか、またはrecursive selectを使用することができます(再帰的選択アプローチでは別のデータベースクエリが必要なので、一度に多くのレビューを表示すると効率的です)各レビューの著者を取得する)。

+0

もう一度ありがとう! :) – Gareth

関連する問題