web2py 中的外键
Posted
技术标签:
【中文标题】web2py 中的外键【英文标题】:Foreign Keys in web2py 【发布时间】:2012-11-18 11:06:53 【问题描述】:我不断收到此错误: “DAL”对象没有属性“event_instance”
它指向我的 db_agents 文件作为这一行的罪魁祸首:
('event_instance_id', db.event_instance)
但是,如果我将 event_instance 表的定义移动到该 db_agents 模型文件,错误就会消失,但我会得到一个新的,它引用 event_instance tbl 中的另一个 FKey。有没有办法避免将我所有的 db.define_tables 放在同一个文件中,我想将它们分开。
【问题讨论】:
【参考方案1】:你可以这样做:
Field('event_instance_id', 'reference event_instance')
使用该替代语法,不必已经定义“event_instance”表。
另外,请注意模型文件是按字母顺序执行的,因此只要“event_instance”表在按字母顺序较早的模型文件中定义,您的原始代码就可以工作。
【讨论】:
我现在得到一个不同的错误,即使我在外键定义中专门使用“引用”。我认为只要我使用引用而不是 db.tbl,我定义表的顺序并不重要。 那你肯定做错了什么。如果使用上述语法,则不必已经定义 event_instance 表。如果您既不显示代码也不显示您收到的错误,就不可能说出您的问题。以上是关于web2py 中的外键的主要内容,如果未能解决你的问题,请参考以下文章