django模板无法正常加载 {% load markup %}

本文探讨了从Python 2.7 Django 1.6升级到Python 3.8 Django 3.2时遇到的问题,重点在于处理废弃的'django.contrib.markup'模块,并提供了解决方案,包括安装相关包和调整模板代码。
摘要由CSDN通过智能技术生成

问题的起因还是升级服务,从 python2.7 django1.6 升级到 python3.8 django3.2。

先看下模板的内容,这个模板在原始版本中是好着的。

{% load markup %}{{ issue.description|markdown }}

<a href="{{ ABSOLUTE_URL_ROOT }}{{ issue.get_absolute_url }}">Permalink</a>

这里注意,在原始版本中,这种用法需要 setting.py 给与支持。

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.admin',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.markup',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'raven.contrib.django',
    'south',
    'pipeline',
    'tastypie',
    'djcelery',
    'djcelery_email',
    'infrastructure',
    'dashboard'
)

注意其中的 : 'django.contrib.markup',

这里是需要将这个添加到 INSTALLED_APPS 中去的。

ok,现在问题来了,'django.contrib.markup', 这个东西,在django1.6以后,就彻底没了,废弃掉了,所以上面的 django 模板就没法用了,{% load markup %} 这东西就不生效了,会直接导致模板无法被正常加载的。

解决之法:

pip install django-markup[all_filter_dependencies]

或者直接下这些包:

bleach                     5.0.0
django-markup       1.5
docutils                   0.18.1
html5lib                   1.1
httplib2                    0.20.4
importlib-metadata  4.11.4
Markdown               3.3.7
Pygments               2.12.0
python-creole         1.4.10
raven                      6.10.0
regex                      2022.6.2
smartypants           2.0.1
textile                     4.0.2
utils                        1.0.1
webencodings        0.5.1

这两者基本是等价的。

然后添加'django_markup', 到 INSTALLED_APPS :

INSTALLED_APPS = (
    ...
    'django_markup',
)

最后,将原先的模板代码,进行变更:

{% load markup_tags %}{{ issue.description|apply_markup:"markdown" }}

<a href="{{ ABSOLUTE_URL_ROOT }}{{ issue.get_absolute_url }}">Permalink</a>

注意,主要是替换原先的 markup 为 markup_tags, markdown 为 apply_markup:"markdown" 其他不变即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值