|
- import json
- import random
- import requests
-
- server_url = 'http://localhost:9999'
- db_name = 'library_13'
- username = 'user2'
- password = '098iop'
-
- json_endpoint = "%s/jsonrpc" % server_url
- headers = {"Content-Type": "application/json"}
-
-
- def get_json_payload(service, method, *args):
- return json.dumps({"jsonrpc": "2.0", "method": 'call', "params": {
- "service": service,
- "method": method,
- "args": args
- }, "id": random.randint(0, 100000000), })
-
-
- payload = get_json_payload("common", "login", db_name, username, password)
- response = requests.post(json_endpoint, data=payload, headers=headers)
- user_id = response.json()['result']
-
- if user_id:
- # 创建draft状态的图书
- payload = get_json_payload("object", "execute_kw", db_name, user_id, password, 'library.book', 'create', [{'name': 'Book 1', 'state': 'draft'}])
- res = requests.post(json_endpoint, data=payload, headers=headers).json()
- print("Has create access:", res['result'])
- book_id = res['result']
-
- # 通过调用make_available方法来修改图书状态
- payload = get_json_payload("object", "execute_kw", db_name, user_id, password, 'library.book', 'make_available', [book_id])
- res = requests.post(json_endpoint, data=payload, headers=headers).json()
- # 在调用方法后查看图书状态
- payload = get_json_payload("object", "execute_kw", db_name, user_id, password, 'library.book', 'read', [book_id, ['name', 'state']])
- res = requests.post(json_endpoint, data=payload, headers=headers).json()
- print("Book state after the method call:", res['result'])
-
- else:
- print("Failed: wrong credentials")
|