Django Tutorial Part 6 -- polls アプリでテーブルの中身を好きな順番で並べる

kaede_io

kaede

Posted on April 14, 2022

Django Tutorial Part 6 -- polls アプリでテーブルの中身を好きな順番で並べる

https://docs.djangoproject.com/en/4.0/intro/tutorial03/#write-views-that-actually-do-something

from django.shortcuts import render
from django.http import HttpResponse
from .models import Question

def index(request):
    latest_question_list = Question.objects.order_by('-pub_date')[:3]
    output = ', '.join([q.question_text for q in latest_question_list])
    return HttpResponse(output)
Enter fullscreen mode Exit fullscreen mode

Question テーブルを models からインポート

<QuerySet [
  <Question: What's new?>, <Question: Question 2>,
  <Question: Questions 3>, <Question: Questions 4>
]>
Enter fullscreen mode Exit fullscreen mode

Question の objects を作成日順に 3 つまでに制限して取得する。

["What's new?", 'Question 2', 'Questions 3', 'Questions 4']
Enter fullscreen mode Exit fullscreen mode

, で 先ほどのリストを展開したものを連結する

Image description

admin でみると Questinons 4 まである状態でも

Image description

最新の 4 から 2 まで 3 つだけ並んだ。

latest_question_list = Question.objects.order_by('-pub_date')[:4]
Enter fullscreen mode Exit fullscreen mode

これを 4 に変更すると

Image description

一番古い、最新から 4 つ目の question_text まで並んだ。

latest_question_list = Question.objects.order_by('pub_date')[:4]
Enter fullscreen mode Exit fullscreen mode

-pub_datepub_date に変更すると、

Image description

古い順で並ぶ。

output = ' | '.join(
  [q.question_text for q in latest_question_list]
)
Enter fullscreen mode Exit fullscreen mode

区切りを | に変更すると

Image description

これで区切られる。view を気にするのはフロントの仕事になるので、こうやってみやすい区切り文字に変更することはないと思うが。

次回は template。
polls/template/index.html を view に組み込み、テーブルのデータを HTML に渡すようにする。

💖 💪 🙅 🚩
kaede_io
kaede

Posted on April 14, 2022

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Choosing the Right Relational Database
undefined Choosing the Right Relational Database

November 29, 2024

Can a Solo Developer Build a SaaS App?
undefined Can a Solo Developer Build a SaaS App?

November 29, 2024

This Week In Python
python This Week In Python

November 29, 2024