【问题标题】:Importing default.py manually into AppConfig ready () method手动将 default.py 导入 AppConfig 的 ready() 方法
【发布时间】:2015-12-10 13:53:51
【问题描述】:

mezzanine configuration docs,它说

注意如果您使用的是 Django 1.7 或更高版本,并且您的应用程序作为 AppConfig 包含在您的 INSTALLED_APPS 中(例如 authors.apps.MyCrazyConfig),Mezzanine 不会自动导入您的 defaults.py。相反,您必须在 AppConfig 的 ready() 方法中手动导入它。

在该页面或 django AppConfig.ready() 页面上没有显示如何执行此操作的示例。

我创建了一个主题/app.py:

from django.apps import AppConfig
from .defaults import *  

class ThemeConfig(AppConfig):
    name = 'theme'
    verbose_name = "Theme"
    def ready(self):
      default

the theme/defaulty.py is thus:
from __future__ import unicode_literals

from django.utils.translation import ugettext_lazy as _
from mezzanine.conf import register_setting

register_setting(
    name="TEMPLATE_ACCESSIBLE_SETTINGS",
    append=True,
    default=("SOCIAL_LINK_FACEBOOK",
                 "SOCIAL_LINK_TWITTER",
                 "SOCIAL_LINK_INSTAGRAM",
                 "SOCIAL_GOOGLE-PLUS",
 ),

register_setting(
    name="SOCIAL_LINK_FACEBOOK",
    label=_("Facebook link"),
    description=_("If present a Facebook icon linking here will be in the "
        "header."),
    editable=True,
    default="https://facebook.com/mezzatheme",
),

register_setting(
    name="SOCIAL_LINK_TWITTER",
    label=_("Facebook link"),
    description=_("If present a Facebook icon linking here will be in the "
        "header."),
    editable=True,
    default="https://twitter.com/",
),

请问如何手动将 default.py 导入 appconfig.ready() 方法?

【问题讨论】:

    标签: python django mezzanine


    【解决方案1】:

    在 ready() 方法中导入您的默认值。见下文。

    from django.apps import AppConfig
    class ThemeConfig(AppConfig):
        name = 'theme'
        verbose_name = "Theme"
        def ready(self):
          from .default import *
    

    【讨论】:

    • 在 Django 1.8.10 和 Python 3.6 中,这个解决方案不起作用,我遇到了这个问题:SyntaxError: import * only allowed at module level。我将 import 替换为:from .defaults import register_setting 并且效果很好
    猜你喜欢
    • 1970-01-01
    • 2015-02-04
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 2019-06-24
    • 1970-01-01
    • 2019-01-22
    相关资源
    最近更新 更多