1. 安装
pip install django-markdownx
2. 配置
# settings.py
INSTALLED_APP = (
# [...]
"markdownx",
)
3. 添加路由
# 总的urls.py中
urlpatterns = [
# path ...,
# 第三方应用
path("markdownx/", include("markdownx.urls"),
]
4. 在模型类中的使用方式
from markdownx.models import MarkdownxField
from markdownx.utils import markdownify
class Mymodel(models.Model):
myfield = MarkdownxField()
def get_markdown(self):
"""将Markdown文本转换成HTML"""
return markdownify(self.content)
5. 在表单中的使用
from django import forms
from markdownx.fields import MarkdownxFormField
from models import Mymodel
class MyForm(forms.ModelForm):
myfield = MarkdownxFormField()
class Meta:
model = Mymodel
fields = []
6. 在前端模板中的使用
<form method="POST" action="">{% csrf_token %}
{{ form }}
</form>
{{ form.media }} # 这个就是预览markdown
6. 把MarkdownX的静态文件生成到我们自己的STATIC_ROOT
中
python3 manage.py collectstatic
最后:
默认是预览在下面,如果想要更改成像GitHub那样:
# settins.py中添加
INSTALLED_APP = (
# [...]
"markdownx",
"django.forms"
)
# 更改查找组件模板的顺序
FROM_RENDERER = "django.forms.renderers.TemplatesSetting"
# templates/markdownx/widget2.html
改两个<li />为编辑和预览
如果想要更改向后端发送请求的延时:
# settings.py中添加
MARKDOWNX_SERVER_CALL_LATENCY = 2000 # 更改为2秒