diff --git a/app_common/__init__.py b/app_common/__init__.py index 9ea74431..a3657ef9 100644 --- a/app_common/__init__.py +++ b/app_common/__init__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -from . import models from . import controllers +from . import models from .hooks import pre_init_hook from .hooks import post_init_hook from .hooks import uninstall_hook \ No newline at end of file diff --git a/app_common/controllers/__init__.py b/app_common/controllers/__init__.py index 221005dc..cd4d6a8b 100644 --- a/app_common/controllers/__init__.py +++ b/app_common/controllers/__init__.py @@ -1,2 +1,2 @@ # -*- coding: utf-8 -*- -# from . import main \ No newline at end of file +from . import main \ No newline at end of file diff --git a/app_common/controllers/main.py b/app_common/controllers/main.py new file mode 100644 index 00000000..c52e75fb --- /dev/null +++ b/app_common/controllers/main.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- + +import base64 +from io import BytesIO +import requests + +from odoo import api, http, SUPERUSER_ID, _ + +class ImageController(http.Controller): + + def get_image_from_url(self, url): + if not url: + return None + try: + response = requests.get(url) # 将这个图片保存在内存 + except Exception as e: + return None + # 返回这个图片的base64编码 + return base64.b64encode(BytesIO(response.content).read()) diff --git a/app_common/models/base.py b/app_common/models/base.py index e59a640b..4ea24d44 100644 --- a/app_common/models/base.py +++ b/app_common/models/base.py @@ -2,6 +2,8 @@ from odoo import models, fields, api, _ from odoo.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT +from ..controllers import main as imgc + from datetime import date, datetime, time import pytz @@ -43,3 +45,8 @@ class Base(models.AbstractModel): user_tz = pytz.timezone(self.env.user.tz or 'Etc/GMT+8') dt = dt.replace(tzinfo=pytz.timezone('UTC')) return dt.astimezone(user_tz).strftime(return_format) + + @api.model + def get_image_from_url(self, url): + res = imgc.ImageController.get_image_from_url(url) + return res \ No newline at end of file