質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Markdown

Markdownは、文書の構造、修飾情報を記述するための軽量マークアップ言語です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

0回答

572閲覧

djangoでmarkdownを用いブログサイトを作っているのですが、エラーの対処法が分からない

TaikiTakematsu

総合スコア4

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Markdown

Markdownは、文書の構造、修飾情報を記述するための軽量マークアップ言語です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/09/06 18:36

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('&lt;iframe','<iframe') 33 html.replase('allowfullscreen&gt','allowfullscreen>') 34 html.replase('&lt;/iframe&gt','<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

###分からないこと

このエラーの対処法の検討がつかない。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/09/06 22:32 編集

Pythonは分からないですが、コード切れてませんか? mport markdown あと、エラーから分かることもあると思います。 たぶん「エラー文に記載されているbase.html内の該当部分」で提示された行ではないと思います
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問