質問編集履歴

2

内容の修正

2021/11/25 19:32

投稿

harug
harug

スコア28

test CHANGED
@@ -1 +1 @@
1
- プルダウンニュで選択し、検索ボンで各ページへ遷移する方法(webアプリ)
1
+ views.pyでURL内のパラメータを取得する方法
test CHANGED
@@ -2,19 +2,31 @@
2
2
 
3
3
  Django上でWebアプリの作成をしています。
4
4
 
5
- 内容としては、プルダウンメニューから町名を選択し、決定ボタンを押すとその町のお店の一覧を表示するようなページに遷移するようなアプリケーションを作成しようと思っています。
5
+ 内容としては、プルダウンメニューから町名を選択し、検索ボタンを押すとその町のお店の一覧を表示するようなページに遷移するようなアプリケーションを作成しようと思っています。
6
6
 
7
- その中で、「検索ボタンを押すと各ページに遷移する機能」を実装したいのですが、うまくできません。
7
+ その中で、「検索ボタンを押すと各町のページに遷移する機能」を実装したいのですが、うまくできません。
8
8
 
9
9
 
10
10
 
11
11
 
12
12
 
13
- ### 発生している問題
13
+ ### 発生している問題と理想
14
14
 
15
15
  各町のページは一つのテンプレート(base.py)を作成し、それをもとに作成できると想像しています。
16
16
 
17
17
  上記の機能を実装するにあたって、<select>で受け取ったvalueの値を利用して簡単にコーディングできないかと考えましたが、views.pyやurls.pyなどをどのようにいじればよいのかが分かりませんでした。
18
+
19
+ プルダウンで町を選択し、検索ボタンを押すと(石川町を選択した場合の)URLは
20
+
21
+ ```
22
+
23
+ http://127.0.0.1:8000/search_shop/?csrfmiddlewaretoken=7hj2qZh0bo2nIpvlIs9UVGGxxSq9TKsWZoKvlMwuH6r7QidouEw5qltikDVBTekP&select_town=ishikawa.html
24
+
25
+ ```
26
+
27
+ というふうになります。
28
+
29
+ 最後の「select_town=ishikawa.html」の部分を取ってきて、その値である~.htmlに遷移させたいです。
18
30
 
19
31
  ### 該当のソースコード
20
32
 
@@ -24,7 +36,7 @@
24
36
 
25
37
  ```html
26
38
 
27
- <form method='POST' action="{% url 'search_shop:shop_town' %}" id="index_form">
39
+ <form method='GET' action="{% url 'search_shop:shop_town' %}" id="index_form">
28
40
 
29
41
  {% csrf_token %}
30
42
 
@@ -54,21 +66,11 @@
54
66
 
55
67
  ```python
56
68
 
57
- # ホーム画面を表示
58
-
59
- def IndexView(request):
60
-
61
- template_name = "index.html"
62
-
63
- return render(request, template_name)
64
-
65
-
66
-
67
69
  # ここで各町のhtmlを表示させる関数を定義するイメージ
68
70
 
69
71
  def ShopView(request):
70
72
 
71
- if request.method == 'GET':
73
+ if 'select_town' in request.GET:
72
74
 
73
75
  select_town = request.GET.get('select_town')
74
76
 
@@ -130,7 +132,7 @@
130
132
 
131
133
  path('search_shop/',views.Shop_Info,name='shop_town'),
132
134
 
133
- path('search_shop/',views.ShopView,name='shopview'),
135
+ path('search_shop/',views.ShopView,name='shopview'), #ここの第一引数に、各ページ(~.html)を表すパラメータを追加できないかと考えています。
134
136
 
135
137
  ]
136
138
 
@@ -140,6 +142,8 @@
140
142
 
141
143
  色々調べて試しましたが、解決策は見つかりません。
142
144
 
145
+ get_context_data()など試してみましたが、何も変わらずでした。
146
+
143
147
  初心者のため、皆さんのお力をお貸しいただきたいです。
144
148
 
145
- どうかよろしくお願いします。
149
+ よろしくお願いします。

1

誤字

2021/11/25 19:32

投稿

harug
harug

スコア28

test CHANGED
File without changes
test CHANGED
@@ -68,7 +68,7 @@
68
68
 
69
69
  def ShopView(request):
70
70
 
71
- if request.mathod == 'GET':
71
+ if request.method == 'GET':
72
72
 
73
73
  select_town = request.GET.get('select_town')
74
74
 
@@ -126,6 +126,8 @@
126
126
 
127
127
  path('',views.IndexView,name='indexview'),
128
128
 
129
+ path('',views.Shop_Info,name='shop_town'),
130
+
129
131
  path('search_shop/',views.Shop_Info,name='shop_town'),
130
132
 
131
133
  path('search_shop/',views.ShopView,name='shopview'),