如何添加一个静态文件夹,其中包含某些SOAP客户端所需的wsdl和xsd文件,以及它与我的Odoo 11自定义模块的相关路径?
------------ ---------更新
我在我的模块中创建了一个静态文件夹,其中包含src文件夹,其中包含我想要的文件 . 需要从我的控制器访问这些文件的正确完整路径是什么?我应该在使用之前在任何地方添加路径吗?
这是我的控制器,我试图使用这些文件:
Check the path given to the client(zeep_test/static/src/uhud/Uhud.wsdl)
from zeep import Client, Settings, xsd
import datetime
from odoo import http
from lxml.etree import tostring
class WaseelCrm(http.Controller):
@http.route('/test/zeep', type='json', methods=['POST'], auth="public", website=True, csrf=False)
def test_zeep(self):
settings = Settings(strict=False, xml_huge_tree=True)
client = Client('zeep_test/static/src/uhud/Uhud.wsdl', settings=settings)
factory = client.type_factory('ns0')
transaction = factory.TransactionCT('1.1', 'NEW', None, None, 'REQUEST')
user = factory.UserCT('admin', 'admin', 'Ahmed Yasser')
interaction = factory.InteractionCT(None, 102, 2260, 101)
timestamp = datetime.datetime.combine(datetime.datetime.now(), datetime.time(10, 23))
cmh = factory.MessageHeaderCT(transaction, interaction, user, timestamp)
member = factory.MemberCT('0020693108', '20693101', '158')
visitInfo = factory.visitInfoCT(timestamp, 7, 'NEW')
eligibilityRequest = factory.EligibilitySubmissionRequestCT(member, visitInfo)
with client.settings(raw_response=False):
response = client.service.submitSchema(CommonMessageHeader=cmh,
EligibilitySubmissionRequest=eligibilityRequest)
return response
This is where these files exist Folder's Path
3 回答
好吧我不知道所有的答案是否正确但是如果你想找到你的costum模块的路径是这样的 .
添加addons_manifest插件的一件事必须有静态文件夹 . 你不应该有这个问题,因为你有这个 .
如果你只是在python中访问这些文件,有一件事就是将它们从静态文件夹中删除以保护它们
感谢您使用更具体的详细信息和代码更新问题 . 您正在尝试从Odoo Python代码访问wsdl,而不是外部作为Odoo发布的静态http内容 .
我看到你有四种可能的方法来解决这个问题:
目前,您将wsdl放在公共可用的静态文件夹中 . 你真的想在你的Odoo中发布这个吗?如果你没有特别的意图,我会考虑不发表这个 . 如果您使用内部地址(案例1和2)从代码中引用此文件,则无需发布它 .
您可以构建一个Odoo模块,并将静态wsdl和xsd包含在名为static的模块文件夹中 . 您可以从以下资源中找到有关创建模块的更多信息和帮助:
Odoo建筑模块参考:https://www.odoo.com/documentation/12.0/howtos/backend.html
Odoo指南,例如关于模块文件夹结构:https://www.odoo.com/documentation/12.0/reference/guidelines.html#directories
如果您无法从Odoo参考资源中找到特定编程挑战的答案,那么在创建模块时,请考虑在Stack Overflow中询问 . 对于Stack Overflow问题,请提供准确且可重现的问题代码,以便人们可以帮助您 . 您可以在https://stackoverflow.com/help/how-to-ask找到有关好问题的说明 . 欢迎来到Stack Overflow,Zatar .