markdowonで入力されたtextを変換し、htmlに表示する際のエラー
djangoでアプリケーションフォルダ内に、templatetagsというフォルダを用意し、中にmarkdown.pyと__init__.pyというファイルを作った。
以下はmarkdown.py内のコード
python
1mport markdown 2from django import template 3from django.utils.safestring import mark_safe 4from markdownx.utils import markdownify 5from markdownx.settings import ( 6 MARKDOWNX_MARKDOWN_EXTENSIONS, 7 MARKDOWNX_MARKDOWN_EXTENSION_CONFIGS, 8) 9from markdown.extensions import Extension 10 11 12register=template.Library() 13 14 15class EscapeHTML(Extension): 16 17 def extendMarkdown(self,md): 18 md.preprocessors.deregister('html_block') 19 md.inlinePatterns.deregister('html') 20 21 22@register.filter 23def markdown_to_html_with_escape(text): 24 """ 25 マークダウンをhtmlに変換します 26 """ 27 28 if text: 29 extensions=MARKDOWNX_MARKDOWN_EXTENSIONS + [EscapeHTML()] 30 html=markdown.markdown(text,extensions=extensions,extension_configs=MARKDOWNX_MARKDOWN_EXTENSIONS) 31 html=str(html) 32 html.replase('<iframe','<iframe') 33 html.replase('allowfullscreen>','allowfullscreen>') 34 html.replase('</iframe>','<iframe') 35 else: 36 html=str(text) 37 return mark_safe(html)
###これらを読み込むhtmlファイル
html
1{% extends 'base.html' %} 2{% load static markdown %} 3 4{% block main %} 5 6<header class="pt-100"> 7 <div class="container"> 8 <div class="col-md-9 col-lg-8 mx-auto"> 9 <div class="text-center py-5"> 10 <h2 class="title text-dark mb-5">{{ article.title }}</h2> 11 <div class="row"> 12 <div class="col-6"> 13 <div class="text-start"> 14 <span>{{ article.vreated|date:'Y/m/d' }}</span> 15 </div> 16 </div> 17 <div class="col-6 "> 18 <div class="text-end"> 19 <i class="fab fa-twitter"></i> 20 <i class="fab fa-facebook"></i> 21 <i class="far fa-copy"></i> 22 </div> 23 </div> 24 </div> 25 </div> 26 </div> 27 </div> 28</header> 29 30<section class="mb-5"> 31 <div class="container"> 32 <div class="col-md-9 col-lg-8 mx-auto"> 33 <div class="article-body pd-5"> 34 {{ article.body|markdown_to_html_with_escape }} 35 </div> 36 </div> 37 </div> 38 39</section> 40{% endblock %}
###エラー文
Error during template rendering
In template /Users/takematsutaiki/Desktop/nothpy/app/app/templates/base.html, error at line 28
'list' object has no attribute 'get'
###エラー文に記載されているbase.html内の該当部分
html
1<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.4/dist/umd/popper.min.js" integrity="sha384-q2kxQ16AaE6UbzuKqyBE9/u/KzioAlnx2maXQHiDX9d4/zp8Ok3f+M7DPm+Ib6IU" crossorigin="anonymous"></script> 2
###分からないこと
このエラーの対処法の検討がつかない。
あなたの回答
tips
プレビュー