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

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

詳細はこちら
Django

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

Python

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

Q&A

解決済

2回答

471閲覧

DjangoのListViewについて。

taketakedayo

総合スコア3

Django

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

Python

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

0グッド

0クリップ

投稿2020/12/12 05:38

編集2020/12/12 06:13

djangoでwebアプリを開発しています。

データベースからデータを抽出してビューに表示させたいのですが、うまく抽出できません。
エラーも出ず困っています。
djangoのgenericのListViewを使用しています。

#views.py from django.shortcuts import render,redirect, get_object_or_404 from django.contrib.auth.mixins import LoginRequiredMixin from accounts.models import Administrater, CustomUser from django.views import generic class UserInformationView(LoginRequiredMixin, generic.TemplateView): template_name = 'user/user_information.html' class UserInformationListView(LoginRequiredMixin, generic.ListView): model = Administrater template_name = 'user/user_list.html' def get_queryset(self): administraters = Administrater.objects.filter(user=self.request.user) return administraters

クエリセットにログイン中のユーザのインスタンスを格納しています。
以下がテンプレートです。

user_list.html <div class="contain"> <div class="container"> <div class="user_information"> <div class="user_list"> ~略~ {% for administrater in administrater_list %} <p>{{ administrater.administrater_lastname }}</p> } {% empty %} <p>代表者が設定されていない</p> {% endfor %} </div> </div> </div> </div>

コンテキスト変数は特に指定していないはずなので、administraterとしています。
うまく抽出できず{% empty %}内が適用されてしまいます。
なぜでしょうか?

試したこと

{% for administrater in object_list %} {% for administrater in administrater/administrater_list %} {% for administrater in administrater:administrater_list %}

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

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

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

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

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

guest

回答2

0

自己解決

コードは間違っておらず、取得するDB内が空なだけでした。自戒します。

投稿2020/12/12 08:38

taketakedayo

総合スコア3

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

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

0

私自身django初心者で確信はないですが

<p>{{ administrater.administrater_lastname }}</p>

が間違っているのではないでしょうか。このadministraterにはログイン中のユーザーのクエリセットが入ってるんですよね?

投稿2020/12/12 07:41

yaha4967

総合スコア106

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

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

taketakedayo

2020/12/12 07:53

そうですね、for文で入れているはずです。
yaha4967

2020/12/12 07:57

間違えました。 administraterではなくてadministrated_listです。 そこにログインいてる人のクエリセットが渡されるのならadministraterにはそのログインしてる人の名前やら何やらが入ると思うのです。
taketakedayo

2020/12/12 08:03

{% for administrater in administrated_list %} という意味でしょうか? 試してみましたが反映されていない様です。
yaha4967

2020/12/12 08:29

そのadministraterに名前とかのフィールドが入っていると思うのです。 {% for administrater in administrater_list %} <p>{{ administrater }}</p> {% endfor %} これで、名前など取り出せると思います。 違ったら申し訳ないです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問