赞
踩
问题的起因还是升级服务,从 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" 其他不变即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。