我正在尝试添加一个Saleor插件,它也是Django应用程序。原因是我希望能够使用Django迁移。我以前创建过定期的Saleor插件,它工作得很好。我还不太熟悉Django应用程序,但是这些文档对我来说是有意义的。我完全困惑的是这两个概念的结合。
manage.py startapp,它在saleor目录旁边创建根目录中的插件,这使我更加困惑。setup.py,并建议:
如果您的插件是Django应用程序,包名(等号之前的部分)将被添加到Django的INSTALLED_APPS中,这样您就可以利用Django的特性,比如ORM集成和数据库迁移。然而,没有一个内置的Saleor插件或Django应用程序使用这种setup.py机制,而且我也找不到任何与Saleor相关的例子,而且没有这样的例子我也想不出任何连贯的例子(也是由于前面的原因)。文档似乎表明,当使用setup.py时,Django应用程序将自动添加到Django的INSTALLED_APPS中。还是我必须自己加进去?
有没有人知道如何将Saleor插件创建为Django应用程序,最好是工作迁移?
发布于 2021-05-19 02:01:43
我不确定这是否是最好的方法,但这对我来说是可行的,就目前而言:
这个应用程序/插件可以在任何地方使用,但我认为把它放到saleor/plugins中是有意义的。
saleor/plugins/product_importpython3 manage.py startapp product_import saleor/plugins/product_import。这将在文件夹中创建标准Django应用程序模板。setup.py部件的官方文件,但它似乎没有为我做任何事情,所以我最终忽略了它,手动添加到saleor/settings.py中:
INSTALLED_APPS =。"saleor.plugins.product_import“
这支持所有常见的Django应用程序特性,例如迁移(在models.py中定义了一些模型之后运行models.py)、命令等等。plugin.py:
从django.http Import JsonResponse WSGIRequest ..base_plugin import BasePlugin class ProductImportPlugin(BasePlugin):“”将产品导入Saleor“PLUGIN_NAME =”ProductImportPlugin“PLUGIN_ID = "product_import”DEFAULT_ACTIVE = True PLUGIN_DESCRIPTION =( "Imports products def“)def __init__(self,*args,**kwargs):super().__init__(*args,**kwargs) def web钩子(self,request: WSGIRequest,path: str,previous_value) -> JsonResponse: Re返回JsonResponse({"status":"works"})
并将其添加到saleor/settings.py中的Saleor插件列表中:
插件=.,"saleor.plugins.product_import.plugin.ProductImportPlugin",https://stackoverflow.com/questions/67586964
复制相似问题