将基于 Django 的插件集成到 wagtail 中

Integration of Django based plug-ins into wagtail

任何人都可以描述将最初为 django 构建的插件或小部件集成到 wagtail 时的一般操作吗?对于新手用户,很难准确理解如何编辑代码以使其在 wagtail cms 中工作。 例如,我试图将两个非常有用的 Django 插件(小部件)集成到我的项目中,并且在这两种情况下我都遇到了问题,当涉及到自定义代码并将代码插入 settings.py

在这两种情况下我都必须 customize some code 但我们在鹡鸰中没有 settings.py,如果我生病了,请尝试输入此代码:

COUNTRIES_OVERRIDE = {
   'XZ': _('Tibet')
}

到 base.py 我收到一个错误:

(env) C:\Users\xakep\Documents\GitHub\database\blemmy>manage.py runserver
Traceback (most recent call last):
    File "C:\Users\xakep\Documents\GitHub\database\blemmy\manage.py", 
        line 10, in <module> execute_from_command_line(sys.argv)
    File "C:\Python36\lib\site-packages\django\core\management\__init__.py", 
        line 363, in execute_from_command_line utility.execute()
    File "C:\Python36\lib\site-packages\django\core\management\__init__.py", 
        line 307, in execute settings.INSTALLED_APPS
    File "C:\Python36\lib\site-packages\django\conf\__init__.py", line 56, 
        in__getattr__self._setup(name)
    File "C:\Python36\lib\site-packages\django\conf\__init__.py", line 41, 
        in _setup self._wrapped = Settings(settings_module)
    File "C:\Python36\lib\site-packages\django\conf\__init__.py", line 110, 
        in__init__ mod = importlib.import_module(self.SETTINGS_MODULE)
    File "C:\Python36\lib\importlib\__init__.py", line 126, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
    File "<frozen importlib._bootstrap>", line 978, in _gcd_import
    File "<frozen importlib._bootstrap>", line 961, in _find_and_load
    File "<frozen importlib._bootstrap>", line 950, in 
        _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
    File "<frozen importlib._bootstrap_external>", line 678, in exec_module
    File "<frozen importlib._bootstrap>", line 205, in 
        _call_with_frames_removed
    File "C:\Users\xakep\Documents\GitHub\database\blemmy\blemmy\settings\
        __init__.py", line 1, in <module> from .dev import *
    File "C:\Users\xakep\Documents\GitHub\database\blemmy\blemmy\settings\
        dev.py", line 2, in <module> from .base import *
    File "C:\Users\xakep\Documents\GitHub\database\blemmy\blemmy\settings\
        base.py", line 112, in <module> 'XZ': _('Tibet')
    NameError: name '_' is not defined

如果你能帮助(解释)我如何在 wagtail 中使用类似的项目,我有很多好主意 =)

非常感谢!!!

base.py 是此类设置的正确位置。在 Wagtail 项目结构中,设置分为 dev.py(仅用于开发环境的设置)、production.py(仅用于生产环境的设置)和 base.py(通用两者),如此处所述:http://docs.wagtail.io/en/v1.11.1/reference/project_template.html#django-settings

name '_' is not defined 错误与 Wagtail 无关 - 这是 django 国家文档中缺少的详细信息。定义一个名为 _ 的函数是将字符串标记为可翻译的标准约定,在此处的 Django 文档中进行了描述:https://docs.djangoproject.com/en/1.11/topics/i18n/translation/

要修复它,请将以下行添加到设置文件的顶部:

from django.utils.translation import ugettext_lazy as _