【发布时间】:2018-08-20 09:07:18
【问题描述】:
我正在尝试通过从 Odoo 检索数据来构建 Django REST API 电子商务,因为我首先需要连接到 odoo 数据库。 知道如何做到这一点!?
PS:使用 XML-RPC 很容易,但我想使用 REST 非常感谢。
【问题讨论】:
标签: python django django-rest-framework odoo django-rest-auth
我正在尝试通过从 Odoo 检索数据来构建 Django REST API 电子商务,因为我首先需要连接到 odoo 数据库。 知道如何做到这一点!?
PS:使用 XML-RPC 很容易,但我想使用 REST 非常感谢。
【问题讨论】:
标签: python django django-rest-framework odoo django-rest-auth
Odoo 通常通过模块在内部进行扩展,但它的许多功能和所有数据也可从外部用于外部分析或与各种工具集成。部分模型 API 可通过 XML-RPC 轻松获得,并可通过多种语言访问。
阅读更多:https://www.odoo.com/documentation/14.0/webservices/odoo.html
使用 Django REST 框架的 XML-RPC 示例:
import xmlrpclib
from rest_framework.decorators import api_view
from rest_framework.response import Response
db = '<DB-NAME>'
url = '<your-host-name:8069>'
models = xmlrpclib.ServerProxy('{}/xmlrpc/2/object'.format(url))
common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(url))
def get_uid():
username = '<your-odoo-username>'
password = '<your-odoo-password>'
uid = common.authenticate(db, username, password, {})
return uid, password
# create default execute method (Odoo Xmlrpc)
def execute(*args):
uid = get_uid()[0]
password = get_uid()[1]
return models.execute_kw(db, uid, password, *args)
# Rest Api for get contact list of odoo with name only
@api_view(['GET'])
def get_contacts_list(request):
contacts = execute('res.partner', 'search_read', [[]], {'fields':['name']})
return Response({'result': contacts, 'status_code': 200})
【讨论】: