Python 2.7 是否可以在控制器中使用ORM方法而不登录Odoo?
我给用户发送电子邮件,里面有链接(到控制器)。该链接是下一个链接:。为了接收变量hello,我创建了下一个控制器:Python 2.7 是否可以在控制器中使用ORM方法而不登录Odoo?,python-2.7,controller,openerp,odoo,odoo-8,Python 2.7,Controller,Openerp,Odoo,Odoo 8,我给用户发送电子邮件,里面有链接(到控制器)。该链接是下一个链接:。为了接收变量hello,我创建了下一个控制器: class mail_controller(http.Controller): @http.route('/my-controller', type='http') def index(self, **args): my_variable = args.get('my_variable', False) if not my_varia
class mail_controller(http.Controller):
@http.route('/my-controller', type='http')
def index(self, **args):
my_variable = args.get('my_variable', False)
if not my_variable:
return 'Invalid URL'
return '<h1>This is the received variable:</h1>' + str(my_variable)
我想知道是否有任何方法可以避免使用ORM方法(或在Odoo模型中声明的其他方法)的这种连接。首先,因为纯文本形式的用户和密码不太安全,其次,连接的参数很容易更改(例如,如果我在其他数据库中安装了模块,或者如果用户修改了密码)
有人能帮我吗?还有其他更好的控制器吗?只需使用
http.request.env
,这与您可能从模型方法中了解的self.env
相同
您可以执行类似于your_objects=http.request.env['your.model'].search([])
的操作,以及通常使用ODOORM执行的所有其他操作。只需将self.env
替换为http.request.env
即可
您可以阅读有关http.request的更多信息Great-answer@Ludwik!非常感谢你!
connection = openerplib.get_connection(hostname='localhost',
database='my_database',
login='my_user',
password='my_pwd', port=8069)