我试图将where
条件值传递到数据库视图中
View
是在定义的init
方法中创建的
输入where
子句取自弹出的wizard
。
问题是向导表单值为inserted
到模型绑定数据库表中
所有提交都会发生这种情况
目前我正在阅读关于向导输入表的最新记录
并修改视图定义以根据向导表中的最新输入记录生成结果集。
select v.col1, v.expre2
from view_name v,
( select fld1, fld2 from wizrd_tbl_1 order by id desc limit 1 ) as w
where
v.colM between w.fld1 and w.fld2
目前,我遵循上述步骤顺序并取得了结果 但我认为,如果至少有两个用户同时使用同一个向导,则会失败。
我如何改变我的方法,以便
1.向导输入未发送到数据库表,
2.输入动态发送到where
子句,结果集绑定到List View
总结一下,我试图:
List View
答案 0 :(得分:0)
当多个用户可能访问该视图时,基于用户输入变形数据库视图绝对是一个坏主意。
'正确'这样做的方法是拥有一个静态数据库视图,其中包含来自连接表的所有可能记录,然后通过生成"域来过滤单个用户的数据。并将用户重定向到应用了该域的树视图。
您可以通过创建< button type =" object">来重定向用户。它调用如下函数:
def action_get_results(self, cr, uid, ids, context={}):
# Redirect user to results
my_domain = ['&', ('col1','=','testval'), ('col2','>',33)]
return {
'type': 'ir.actions.act_window',
'name': 'Search Results',
'view_mode': 'tree',
'res_model': 'your.osv_memory.model.name',
'target': 'new', # or 'current'
'context': context,
'domain': my_domain,
}