【问题标题】:Django-Oscar override templatetagsDjango-Oscar 覆盖模板标签
【发布时间】:2013-05-22 17:31:01
【问题描述】:

我尝试通过使用本地 templatetags 文件夹创建目录应用程序的本地版本来覆盖 category_tags,该文件夹具有 category_tags.py 文件(也是 init.py)。 似乎使用了默认的 category_tags 文件。 如果我更改本地标签文件的名称,当然我在模板中加载标签的新名称,它可以工作,但我想覆盖或扩展默认的 category_tags 而不是创建另一个。

有什么想法吗?

谢谢!

【问题讨论】:

    标签: django overriding templatetags django-oscar


    【解决方案1】:

    我通过将模板放入我的 project_folder > templates > oscar_app_name > template_name.html 来让它工作

    所以要覆盖“结帐”应用程序和模板,我的结构如下所示:

    /project
    --/apps
    ----/checkout
    ------[change checkout models]
    ----__init__.py
    ----app.py
    
    --/project
    ----/templates
    ------/checkout
    --------payment_details.html
    
    ----__init__.py
    ----settings.py
    ----urls.py
    
    --manage.py
    

    然后你必须编辑 settings.py 已安装的应用程序

    INSTALLED_APPS = [
        'django.contrib.admin',
        ...
        'compressor',
        'paypal',
    ] + get_core_apps(['apps.checkout'])
    

    【讨论】:

    • 哥们,他要求模板标签。您正在回答文档中已经给出的内容。
    • @Jay 对不起。这个问题是在 1.0 版发布之前提出并回答的。我不确定当时文档中的内容,但这个答案肯定不再相关。
    【解决方案2】:

    我假设模板标签按照INSTALLED_APPS 中指定的顺序加载。包含您的category_tags.py 的应用程序是否出现在oscar.core.apps.catalogue 之前(或代替,例如,当使用 Oscar 的 get_core_apps 覆盖来扩展 Oscar 核心应用程序时)oscar.core.apps.catalogue

    PS。我是奥斯卡作家,不得不承认我们不经常检查 StackOverflow。邮件列表是您目前最好的选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-24
      • 2018-01-01
      • 2018-02-22
      • 1970-01-01
      • 2020-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多