インストール
pip install markdown
models.py
from django.db import models
from django.conf import settings
from django.utils.safestring import mark_safe
from markdown import markdown
class Bank(models.Model):
name = models.CharField('銀行名', max_length=128)
currency = models.CharField('通貨', max_length=16)
balance = models.DecimalField('残高', max_digits=12, decimal_places=2)
created_by = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name='作成者', on_delete=models.CASCADE)
created_at = models.DateTimeField('登録日',auto_now_add=True)
class Meta:
db_table = 'bank'
def content_as_markdown(self):
return mark_safe(markdown(self.name))
def __str__(self):
return self.name
content_as_markdown
関数で、nameにmarkdownで記述した内容をHTMLに変換して返す。
htmlでタグをエスケープしなくてもいいように、mark_safe
している。
関数名は自由に設定してOK。
html
<div>
{% for md in object_list %}
{{ md.content_as_markdown }}
{% endfor %}
</div>
この場合、Markdownで記述したnameの内容がHTMLに変換されて表示される。