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

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

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

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

ウェブアプリケーション

ウェブアプリケーションとは、ウェブ上でアクセスされるアプリケーションのことを呼びます。この場合におけるウェブとは、インターネットやイントラネット上を意味します。

Python

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

HTML

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

Q&A

解決済

1回答

584閲覧

wagtail(DjangoCMS)でHTML上の{{ self.article_title }}が表示されない。

退会済みユーザー

退会済みユーザー

総合スコア0

Django

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

ウェブアプリケーション

ウェブアプリケーションとは、ウェブ上でアクセスされるアプリケーションのことを呼びます。この場合におけるウェブとは、インターネットやイントラネット上を意味します。

Python

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

HTML

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

0グッド

0クリップ

投稿2020/08/05 17:55

編集2020/08/11 06:26

###補足
もしわかりにくい点などがあれば教えてください。本当に自分では力不足です。
ヒントでもいいです。足りない点があればご指摘ください。

{{ self.article_title }}などにするとhtml上にはh3タグを残したまま、ディスプレイ上からは消えます。

ありがとうございます。指示通りトライしてみました。すると”MultiValueDictKeyError: 'content-0-value-articles-count'”が出ましたので、def super(): Passを'NoneType' object has no attribute 'get_context'のエラーが出ました。def get_context(self, request, *args, **kwargs):をいじればよいのでしょうか?

前提・実現したいこと

wegtail(Django用CMS)を使ってニュースアプリのようなものを作ろうとしています。
Blocks.pyで作成したクラスをmodels.pyで継承、htmlをコーディングしました。
しかし、HTML上で認識されているようですが表示がされませんでした。

3時間ぐらい試行錯誤しましたが先に進めないため、質問いたしました。

発生している問題・エラーメッセージ

エラーメッセージは特にありません。認識されてはいるものの表示されていないのが今回の問題点です。 以下の写真は、<h3>{{ self }}</h3>で表示しています。コード内の場所はコメントを参考にしてください。

StructValue以下、表示されているので認識がされていることは明白です。

該当のソースコード

####プロジェクトツリー
イメージ説明

Python

1#streams/blocks.py 2 3#記事情報の入力クラス 4class ArticleIndexBlock(blocks.StructBlock): 5 articles = blocks.ListBlock( 6 blocks.StructBlock( 7 [ 8 ("article_image", ImageChooserBlock(required=True)), 9 ("article_title", blocks.CharBlock(required=True, max_length=40)), 10 ("article_text", blocks.TextBlock(required=True, max_length=200)), 11 ("article_url", blocks.URLBlock(required=False)), 12 ] 13 ) 14 ) 15 16 class Meta: 17 template = "streams/article_index_block.html" 18 icon = "edit" 19 label = "Article"

python

1#articles/models.py 2 3#Streams/blocks.pyから継承したクラスをモデル化 4class ArticleIndexPage(Page): 5 template = "articles/article_index.html" 6 7 content = StreamField( 8 [ 9 ("article_index_block", blocks.ArticleIndexBlock()), 10 ], 11 null=True, 12 blank=True, 13 ) 14 15 content_panels = Page.content_panels + [ 16 StreamFieldPanel("content"), 17 ] 18 19 def get_context(self, request, *args, **kwargs): 20 context = super().get_context(request, *args, **kwargs) 21 context["posts"] = ArticleIndexPage.objects.live().public() 22 return context 23 24 class Meta: 25 verbose_name = "Article index Page" 26 verbose_name_plural = "Article index Pages"

html

1<!--article_index.html--> 2 3{% extends 'base.html' %} 4{% load wagtailcore_tags %} 5 6{% block content %} 7 <h1>{{ self.title }}</h1> 8 9 10 {% for block in page.content %} 11 {% include_block block%} 12 {% endfor %} 13 14{% endblock content %}

HTML

1<!--article_index_block.html--> 2 3<div class="container"> 4 <h3>{{ self.article_title }}</h3> 5<!--写真箇所--> 6 7</div> 8 9</hr> 10

試したこと

0念のため、article_index_block.htmlのh3タグの変数名selfをpageなどに、ピリオド以下をtitleなどに変えました。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/08/11 06:26

ありがとうございます。指示通りトライしてみました。すると”MultiValueDictKeyError: 'content-0-value-articles-count'”が出ましたので、def super(): Passを'NoneType' object has no attribute 'get_context'のエラーが出ました。def get_context(self, request, *args, **kwargs):をいじればよいのでしょうか?
guest

回答1

0

ベストアンサー

template(article_index_block.html)にはself.articlesが渡されているので

<div class="container"> {% for article in articles %} <h3>{{ self.article.article_title }}</h3> <!--写真箇所--> {% endfor %} </div>

のようにすると表示されると思います。

投稿2020/08/08 06:54

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2020/08/09 05:01

ありがとうございます。指示通りトライしてみました。すると”MultiValueDictKeyError: 'content-0-value-articles-count'”が出ましたので、def super(): Passを'NoneType' object has no attribute 'get_context'のエラーが出ました。def get_context(self, request, *args, **kwargs):をいじればよいのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問