🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Django

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

2353閲覧

Djangoでmodelの中身をtemplateに表形式で出力させる方法

退会済みユーザー

退会済みユーザー

総合スコア0

Django

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/10/23 00:59

前提・実現したいこと

Djangoでmodelの中身をtemplateに表形式で出力させる方法
上記の機能を実装中にtemplateに表示されない現象が発生しました。
Choromeのコンソールで見ても内容が読み込まれていないようなのでお伺いしたいです。

Python 3.7.3
Django 2.2

該当のソースコード

model

1from django.db import models 2 3 4class Menu(models.Model): 5 class Meta: 6 verbose_name = "メニュー" 7 verbose_name_plural = "メニュー" 8 9 # カラムの定義 10 name = models.CharField(verbose_name="名前", max_length=100) 11 category = models.ForeignKey(Category, on_delete=models.PROTECT, verbose_name="カテゴリ") 12 calorie = models.IntegerField("カロリー", help_text="単位はkcal") 13 protein = models.FloatField("タンパク質", help_text="単位はg") 14 fat = models.FloatField("脂質", help_text="単位はg") 15 carbohydrate = models.FloatField("炭水化物", help_text="単位はg") 16 17 def __str__(self): 18 return self.name 19 20class Category(models.Model): 21 class Meta: 22 # カテゴリ 23 verbose_name = "カテゴリー" 24 verbose_name_plural = "カテゴリー" 25 26 # カラム名の定義 27 category_name = models.CharField(max_length=255, unique=True) 28 29 def __str__(self): 30 return self.category_name 31

view

1from .models import Menu 2from django.views import generic 3 4class MenuIndex(generic.ListView): 5 template_name = 'foodlist/datatable.html' 6 model = Menu 7 paginate_by = 10

url

1 2from django.urls import path 3from . import views 4 5app_name = 'foodlist' 6 7 8urlpatterns = [ 9 path('', views.MenuIndex.as_view(), name='MenuIndex'), 10] 11

template

1 2<!-- テーブル表の定義 --> 3 <table id="menu_list" width="100%" class="table table-striped table-bordered table-hover"> 4  <!-- 表の列の定義--> 5 <thead> 6 <tr> 7 <th class="text-center">名前</th> 8 <th class="text-center">カテゴリー</th> 9 <th class="text-center">カロリー</th> 10 <th class="text-center">タンパク質</th> 11 <th class="text-center">脂質</th> 12 <th class="text-center">炭水化物</th> 13 </tr> 14 </thead> 15  <!-- ここまでが表の列の定義--> 16 17  <!-- 表のデータ部分の表示--> 18 <tbody> 19 {% for menu in MenuIndex %} 20 <tr> 21 <td class="text-center" width="100">{{ menu.name }}</td> 22 <td class="text-center" width="100">{{ menu.category }}</td> 23 <td class="text-center" width="140">{{ menu.carolie }}kcal</td> 24 <td class="text-center" width="140">{{ menu.protein }}g</td> 25 <td class="text-center" width="140">{{ menu.fat }}g</td> 26 <td class="text-center" width="140">{{ menu.carbohydrate }}g</td> 27 </tr> 28 {% endfor %} 29 </tbody> 30  <!-- ここまでが表のデータ部分の表示--> 31 </table> 32 <!-- ここまでがテーブル表の定義 --> 33 </form> 34

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

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

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

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

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

guest

回答1

0

{% for menu in MenuIndex %} の部分、MenuIndexではなくobject_listにしたら動きそうです。

https://docs.djangoproject.com/ja/2.2/topics/class-based-views/generic-display/#generic-views-of-objects

投稿2019/10/23 02:29

mistn

総合スコア1191

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

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

退会済みユーザー

退会済みユーザー

2019/10/23 04:00

親切にありがとうございます。 しかし今回のケースには当てはまらなかったようでいまだに表示されていません。 modelは問題がなく、デベロッパーコンソールに全く表示されないことからおそらくviewかtemplateに問題があると思うのですが・・・
mistn

2019/10/23 04:39

表のヘッダーは表示されていますか? あとできればtemplateの中身は全文見せてほしいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問