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

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

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

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

Python

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

Q&A

解決済

1回答

1634閲覧

【Django】ManyToManyFieldのオブジェクト操作について

akaiman

総合スコア8

Django

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

Python

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

0グッド

0クリップ

投稿2020/06/14 04:00

実現したいこと

djangoでWEB開発を個人的にしている初学者です。
表題の件についてご質問いたします。

MODELで2つのフィールドをManyToManyFieldで連携させています。
そのモデルからオブジェクト操作してテンプレートにforテンプレートタグを用いて
アウトプットしようと思うのですが、ManyToManyFieldで連携させたフィールドのカラムの値だけ取得することができません。厳密にはクエリセットのリストの形で取り出されてしまいます。
これをテーブルのフィールドの名前で取り出したいです。
(下記キャプチャ赤枠内参照)
イメージ説明

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

上記キャプチャの赤枠部分が問題の箇所になります。

該当のソースコード

models.py

1from django.db import models 2from mdeditor.fields import MDTextField 3 4 5# 新着情報 6 7class Category(models.Model): 8 name = models.CharField(max_length=100,) 9 def __str__(self): 10 return self.name 11 12 13class News(models.Model): 14 title = models.CharField(max_length=100, verbose_name='タイトル') 15 category = models.ManyToManyField(Category, verbose_name='カテゴリー') 16 content = MDTextField(max_length=500, verbose_name='記事内容') 17 data = models.DateTimeField(auto_now_add=True, verbose_name='投稿日') 18 19 def __str__(self): 20 return self.title 21 22 23

views.py

1def news(request): 2 news = News.objects.all() 3 return render(request, 'system/news.html', {'news': news,})

news.html

1#一部抜粋 2 <thead> 3 <tr> 4 <th>ID</th> 5 <th>タイトル</th> 6 <th>カテゴリー</th> 7 <th>記事内容</th> 8 <th>削除・編集</th> 9 <th>公開/非公開</th> 10 <th>更新日</th> 11 </tr> 12 </thead> 13 <tbody> 14 {% for news in news %} 15 <tr> 16 <td>{{ news.id }}</td> 17 <td>{{ news.title }}</td> 18 <td>{{ news.category.all }}</td> 19 <td>{{ news.content|truncatechars:20 }}</td> 20 </tr>

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

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

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

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

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

guest

回答1

0

ベストアンサー

HTML

1<tr> 2 <td>{{ news.id }}</td> 3 <td>{{ news.title }}</td> 4 <td>{% for ctg in news.category.all %}{{ctg}}{% endfor %}</td> 5 <td>{{ news.content|truncatechars:20 }}</td> 6</tr> 7```for文で回す

投稿2020/06/14 20:34

編集2020/06/15 20:53
ForestSeo

総合スコア2722

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

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

akaiman

2020/06/15 13:30

お返事遅くなり申し訳ありません。 ご回答いただきました方法で解決いたしました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問