Markdownを導入したら、更新情報の入力が一々HtmlやCssやURLを書かずに楽に書くことができるようになったので、そのやり方をシェアしたいと思います。Djangoを詳しく知りたいと思う方はこちらの書籍をご購読すればわかりやすいと思います。
Markdownxのダウンロード
今回はMarkdownxを使用します。
まずMarkdownxをダウンロードします。下記のコマンドを入力すればダウンロードが可能です。
pip install markdownx
PCにMarkdown をインストールが完了したらDjangoに認知してもらうため、settings.pyにmarkdownxを認知してもらうようにします。
installapp[
'markdownx',
]
次にprojectsフォルダのurls.pyにmarkdownを記入を行います
path('markdownx/', include('markdownx.urls')),
appフォルダ内のmodels.pyに移動して書き換えます。
from markdownx.models import MarkdownxField
class blog(models.Model):
text = text =MarkdownxField()
これでmodels.pyによる追加は完了です migrateをし忘れないようにしましょう
あとはadmin.pyに反映させれば入力フォームは完了です。

HTMLへの反映
このままではMarkdown形式にしたところでそのまま反映するので、Markdownに変換するように指示を出します。
まずはアプリフォルダに適当な名前のpythonファイルを作成します。
次に以下のコードを入力すれば完了します
from django import template
from django.template.defaultfilters import stringfilter
import markdown as md
register = template.Library()
@register.filter()
@stringfilter
def markdown(value):
return md.markdown(value, extensions=['markdown.extensions.fenced_code'])
あとは反映させたいHtmlにコードに追加すれば完了します。
safeは自分でjavascriptとかを入力したい場合などに使うといいでしょうただしコメント欄には悪意あるjavascriptを入れ込まないようにするためエスケープさせる必要があります。
{% extends 'blog/base.html' %}
{% load app %}
...
...
{% blog.text|markdown|safe %}
MarkDownで作ったブログ記事がこちらです。
このほかにもDjangoやHtmlに関する投稿をあげています。ご興味がありましたら是非ご覧ください