質問するログイン新規登録

回答編集履歴

2

回答の追加

2018/09/05 09:18

投稿

Meganezaru
Meganezaru

スコア716

answer CHANGED
@@ -47,7 +47,15 @@
47
47
  return videos
48
48
  ```
49
49
 
50
+ view.py
50
51
  ```
52
+ def index(request):
53
+ keyword = request.GET.get("keyword")
54
+ return render(request, "youtube/search_list.html", {'videos': search(keyword)})
55
+ ```
56
+
57
+ search_list.html
58
+ ```
51
59
  {% extends "youtube/base.html" %} {% block content %}
52
60
  <header>
53
61
  <h1>検索結果</h1>

1

誤った回答を訂正

2018/09/05 09:18

投稿

Meganezaru
Meganezaru

スコア716

answer CHANGED
@@ -1,7 +1,8 @@
1
- forloop.counter0で、index値が取れます。
1
+ ~~forloop.counter0で、index値が取れます。
2
- idの配列の同じ位置をセットすれば、期待通りに動くと思います。
2
+ idの配列の同じ位置をセットすれば、期待通りに動くと思います。~~
3
+ 失礼しました。DjangoのTemplateでは、単純な方法で任意のArray要素にアクセスすることができませんでした。
4
+ 下記回答は誤りですので、無視してください。
3
5
 
4
-
5
6
  ```
6
7
  {% extends "youtube/base.html" %} {% block content %}
7
8
  <header>
@@ -14,4 +15,46 @@
14
15
  {% endfor %} {% endblock %}
15
16
  ```
16
17
 
17
- search()の戻り値として、現状は、二つの配列を返していますが、video_idをキーとして、video_nameを値に持つ辞書の配列にまとめたほうが、わかりやすいかもですね。
18
+ search()の戻り値として、現状は、二つの配列を返していますが、video_idをキーとして、video_nameを値に持つ辞書の配列にまとめたほうが、わかりやすいかもですね。
19
+
20
+ ### 追記
21
+ search()の戻り値を辞書にする方法で、できないでしょうか?
22
+
23
+ ```Python
24
+ def youtube_search(options):
25
+ youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
26
+ developerKey=DEVELOPER_KEY)
27
+
28
+ saerch_response = youtube.search().list(
29
+ q=options.q,
30
+ part="id,snippet",
31
+ maxResults=options.max_results
32
+ ).execute()
33
+
34
+ # videos_name = []
35
+ # videos_id = []
36
+ videos = []
37
+
38
+ for saerch_result in saerch_response.get("items", []):
39
+ if saerch_result["id"]["kind"] == "youtube#video":
40
+ # videos_name.append(saerch_result["snippet"]["title"])
41
+ # videos_id.append(saerch_result["id"]["videoId"])
42
+ videos.append(
43
+ {"video_id": saerch_result["id"]["videoId"],
44
+ "video_name": saerch_result["snippet"]["title"]})
45
+
46
+ # return videos_name, videos_id
47
+ return videos
48
+ ```
49
+
50
+ ```
51
+ {% extends "youtube/base.html" %} {% block content %}
52
+ <header>
53
+ <h1>検索結果</h1>
54
+ </header>
55
+ {% for video in videos %}
56
+ <div>
57
+ <a href="{% url 'youtube:detail' id=video.video_id %}">{{ video.video_name }} </a>
58
+ </div>
59
+ {% endfor %} {% endblock %}
60
+ ```