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

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

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

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

Python

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

Q&A

解決済

1回答

1143閲覧

Djangoのテンプレートにおける1:nデータの表示方法について

Test_ks

総合スコア33

Django

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

Python

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

0グッド

0クリップ

投稿2019/12/26 12:57

編集2019/12/26 12:58

■概要
Djangoのテンプレートに変数を表示したいとおもっております。
Modelの関係は以下になります。

python

1from django.db import models 2from django.utils import timezone 3from django.contrib.auth.models import AbstractUser 4from django.conf import settings 5from django.urls import reverse 6# Create your models here. 7 8from userauth.models import CustomUser 9 10class Reading(models.Model): 11 class Meta: 12 db_table = 'reading' 13 14 #テーブルのカラムに対応するフィールドを定義 15 #Title・詳細 16 title =models.CharField(verbose_name='タイトル', max_length=255) 17 detail_text = models.TextField(verbose_name='詳細',) 18 #作成者 19 creater = models.ForeignKey(CustomUser,verbose_name='作成者',on_delete=models.SET_NULL,related_name="create_user",null = True) 20 #申込者 21 applier = models.ManyToManyField(CustomUser,verbose_name='申請者',blank = True,related_name="apply_user", null=True,default=None) 22 def __str__(self): 23 return self.title 24 25class ReadingTime(models.Model): 26 27 apply_time = models.DateTimeField(verbose_name="applytime",null=False) 28 reading_id = models.ForeignKey(Reading,on_delete=models.CASCADE) 29 30

ReadingのQuerySet(Reading.objects.all()で取得した値)をテンプレートに渡しております。
テンプレート側のコードはいかになっておりますが、For文で繰り返した項目に紐付いたReading_timeを取得したいと考えております。

python

1#現在できているコード 2{% for read in reading_list %} 3 <p>{{read.title}} </p> 4{% endfor %}

やりたいことのイメージは以下のようなことです。

python

1#やりたいこと 2{% for read in reading_list %} 3 <p>{{read.title}} {{Reading_time.objects.filter(reading=read).values_list('apply_time')}} 4 </p> 5{% endfor %}

出力のイメージは以下のようなものを想定しています。

html

1<p> read.title apply_time1,apply_time2,apply_time3</p>

どのようにすれば、良いかわからず、ご教授いただけますと幸いです。

よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

自分ならこんな感じにするかな

  • views.py

Python

1def view(request): 2 readings = [] 3 for read in reading_list: 4 readings.append( 5 [read,Reading_time.objects.filter(reading=read).values_list('apply_time')] ) 6 return render(request,'path_to_template', {'readings':readmings}) 7
  • template

HTML

1{% for read in readings %} 2 <p>{{read.0.title}} 3 {% for readtime in read.1 %} 4 {{readtime.apply_time}} 5 {% endfor %} 6 </p> 7{% endfor %}

投稿2019/12/27 08:49

tatamyiwathy

総合スコア1039

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問