2016-09-14 7 views
0
db.define_table("devices", 
      Field('user_id','reference users'),# THIS PRODUCES AN ERROR 
      Field('energyConsumed','integer'), 
      Field('device_password','password'), 
      Field('date_of_measure','date') 
      ); 
db.define_table("users", 
      Field('device_id','reference devices') 
); 

テーブル定義の前に定義されていないため、最初のテーブルで '参照ユーザ'を使用できません。どのように私は後で定義されているテーブルを参照することができます。は、web2pyの最初のテーブルの定義の後に定義されたテーブルを参照しています。

+0

をそれは正確なエラー(好ましくは全体のトレースバックを)報告することは常に最善です。つまり、あなたのコードは正常に動作するはずです - 正確なコードなのですか?エラーの原因となっているのは特定の行ですか?また、循環参照が本当に必要ですか?多対多リレーションシップをモデル化しようとしている場合は、代わりに他の2つを連結する第3のテーブルを用意する必要があります。 – Anthony

答えて

1

定義されていないテーブルは参照できません。だからあなたは別の構文を使用する必要があります。

IS_IN_DBバリデーターを使用してください。

IS_IN_DB(db, 'users.id') 

これはすでにここに答えている:

https://stackoverflow.com/a/38948788/4065350 https://groups.google.com/forum/#!msg/web2py/yNca8bq0HmM/DmVjCPrODQAJ

+0

この答えはこの質問には関係ありません。問題のコードにはどこでも 'db.users'が含まれていません(つまり、未定義のテーブルにアクセスしようとしていません)。 – Anthony

関連する問題