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

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

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

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

Python

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

Q&A

解決済

1回答

1248閲覧

Django html上で選択した内容に応じて、遷移先のhtmlへ選択した内容に紐づいた詳細を反映したい

art35

総合スコア13

Django

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

Python

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

0グッド

0クリップ

投稿2021/09/16 08:10

編集2021/09/29 07:42

所属(仮にa,b,c)と所属に紐づいている場所(仮にa-1,a-2,b-1,c-1,c-2)を登録する以下のmodelを作成して2つのhtmlで段階的に表示したいです。

1:所属表示、
2:所属に紐づいた場所の表示

1から2へ遷移させるときに選択した所属に紐づいている場所のみを表示させたいのですが、
所属している場所は変更されることもあり、a-3,b-2が増えることがあります。
変化するデータベースの内容を制限して表示させる方法がわかりません。

初学者なのでどのように関数を入れたらいいのかコードでなにを記述すればよいのかが
わからないのでわかる方がお見えでしたらご教授お願いします。

/models.py class Department(models.Model): """所属部署の登録""" team_id = models.IntegerField(verbose_name='チームID') team = models.CharField(max_length=50, unique=True, blank=True, verbose_name ='チーム') line = models.ManyToManyField( Line, verbose_name ='ライン', blank=True ) def get_lines(self): return ",".join([str(p) for p in self.line.all()]) def __str__(self): return str(self.team)
/views.py def teamlist(request): object_team = Department.objects.all() print(object_team) return render( request, 'teamlist.html', {'object_team':object_team} ) def linelist(request): object_line = Department.objects.all() #print(object_line) print("team_name:",request.GET.get('test_team')) return render( request, 'linelist.html', {'object_line': object_line} )
/urls.py urlpatterns = [ path('linelist/', linelist, name='line_l'), path('teamlist/', teamlist, name='team_l'), ]
teamlist.html {% block content %} <div class="container"> {% for item in object_team %} <div class="alert alert-success" role="alert"> <p>チーム:<form action="{% url 'line_l' %}" method="get" autocomplete="off"> {% csrf_token %} {{ form }} {{ item.team }} <input type="hidden" name="test_team" id="test_team" value="{{ item.team }}"> <button type="submit">選択</button> </form></p> </div> {% endfor %} </div> {% endblock content %}
linelist.html {% block content %} <div class="container"> {% for item in object_line %} <div class="alert alert-priority" role="alert"> <p>チーム:{{ item.team }}</p> <div class="alert alert-success" role="alert"> <p>ライン:<form action="{% url 'cs_l' %}" method="get" autocomplete="off"> {% csrf_token %} {{ form }} {{ item.get_lines }} <input type="hidden" name="test_line" id="test_line" value="{{ item.get_lines }}"> <button type="submit">選択</button> </form></p> </div> </div> {% endfor %} </div> {% endblock content %}

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

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

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

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

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

yamap55

2021/09/24 02:27

回答が付かないのは、質問の内容が良くわからないからだと思います。少なくても私は何を聞かれているのかわかりません。再度質問を見直してみてはどうでしょうか。
art35

2021/09/27 01:05

わかりました。 一度修正してみます。
art35

2021/09/27 06:19

修正してみましたがわかりますでしょうか。
yamap55

2021/09/28 09:23

url.pyを基準に話すと、team_lからteam_dに遷移する時の話をしているという事で良いでしょうか? そして、team_dでは、選択されたteamで絞ったlineを表示したい。 上記が正しい場合、選択したDepartmentのpkを渡すことでviewでpkを受け取り、そのpkを条件として取得が可能です。 aタグで書く場合には「a href="{% url 'team_d' item.pk %}"」みたいな感じになります。 ※質問する場合、必要な事項を最低限。コードに関しても不要な箇所は全て削って最小限のコードで提示した方が良いかと思います。
art35

2021/09/29 07:17

url.pyでいうとteam_lからline_lへ遷移するときです。team_lの <p>チーム:<form action="{% url 'line_l' %}" method="get" autocomplete="off"> {% csrf_token %} {{ form }} {{ item.team }} <input type="hidden" name="test_team" id="test_team" value="{{ item.team }}"> <button type="submit">選択</button> で遷移した時に所属一覧から所属についている場所の一覧にしたいのですが、 別の所属も表示されてしまうため今回の質問を出しています。
guest

回答1

0

ベストアンサー

views.pyで使っているModelを取得する関数が全く同じなので、linelist関数でチーム情報に紐づく情報を取得できるようにする必要があります。
teamlist.htmlを見る限りだとリクエストパラメータにitem.teamを使っており、それを使うのであれば、linelist関数で以下のようにデータを取得すればいいと思います。(リクエストパラメータのtest_teamで値を取得している前提の話ですが)

python

1def linelist(request): 2 test_team = request.GET.get('test_team') 3 object_line = Department.objects.filter(team = test_team) 4 #print(object_line) 5 print("team_name:", test_team) 6 return render( 7 request, 8 'linelist.html', {'object_line': object_line} 9 )

投稿2021/10/02 17:22

編集2021/10/02 17:23
Supernove

総合スコア1154

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

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

art35

2021/10/04 02:23

ご回答ありがとうございます。 なかなか回答が得られなかったため、少し作り直し手織りました。 同じ内容で別の質問で解決できたのでこちらのurlを貼り付けておきます。 https://teratail.com/questions/362252 Supernove様ありがとうございます。機会をみて実施してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問