回答編集履歴

2

回答の追加

2018/09/05 09:18

投稿

Meganezaru
Meganezaru

スコア715

test CHANGED
@@ -96,6 +96,22 @@
96
96
 
97
97
 
98
98
 
99
+ view.py
100
+
101
+ ```
102
+
103
+ def index(request):
104
+
105
+ keyword = request.GET.get("keyword")
106
+
107
+ return render(request, "youtube/search_list.html", {'videos': search(keyword)})
108
+
109
+ ```
110
+
111
+
112
+
113
+ search_list.html
114
+
99
115
  ```
100
116
 
101
117
  {% extends "youtube/base.html" %} {% block content %}

1

誤った回答を訂正

2018/09/05 09:18

投稿

Meganezaru
Meganezaru

スコア715

test CHANGED
@@ -1,8 +1,10 @@
1
- forloop.counter0で、index値が取れます。
1
+ ~~forloop.counter0で、index値が取れます。
2
2
 
3
- idの配列の同じ位置をセットすれば、期待通りに動くと思います。
3
+ idの配列の同じ位置をセットすれば、期待通りに動くと思います。~~
4
4
 
5
+ 失礼しました。DjangoのTemplateでは、単純な方法で任意のArray要素にアクセスすることができませんでした。
5
6
 
7
+ 下記回答は誤りですので、無視してください。
6
8
 
7
9
 
8
10
 
@@ -31,3 +33,87 @@
31
33
 
32
34
 
33
35
  search()の戻り値として、現状は、二つの配列を返していますが、video_idをキーとして、video_nameを値に持つ辞書の配列にまとめたほうが、わかりやすいかもですね。
36
+
37
+
38
+
39
+ ### 追記
40
+
41
+ search()の戻り値を辞書にする方法で、できないでしょうか?
42
+
43
+
44
+
45
+ ```Python
46
+
47
+ def youtube_search(options):
48
+
49
+ youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
50
+
51
+ developerKey=DEVELOPER_KEY)
52
+
53
+
54
+
55
+ saerch_response = youtube.search().list(
56
+
57
+ q=options.q,
58
+
59
+ part="id,snippet",
60
+
61
+ maxResults=options.max_results
62
+
63
+ ).execute()
64
+
65
+
66
+
67
+ # videos_name = []
68
+
69
+ # videos_id = []
70
+
71
+ videos = []
72
+
73
+
74
+
75
+ for saerch_result in saerch_response.get("items", []):
76
+
77
+ if saerch_result["id"]["kind"] == "youtube#video":
78
+
79
+ # videos_name.append(saerch_result["snippet"]["title"])
80
+
81
+ # videos_id.append(saerch_result["id"]["videoId"])
82
+
83
+ videos.append(
84
+
85
+ {"video_id": saerch_result["id"]["videoId"],
86
+
87
+ "video_name": saerch_result["snippet"]["title"]})
88
+
89
+
90
+
91
+ # return videos_name, videos_id
92
+
93
+ return videos
94
+
95
+ ```
96
+
97
+
98
+
99
+ ```
100
+
101
+ {% extends "youtube/base.html" %} {% block content %}
102
+
103
+ <header>
104
+
105
+ <h1>検索結果</h1>
106
+
107
+ </header>
108
+
109
+ {% for video in videos %}
110
+
111
+ <div>
112
+
113
+ <a href="{% url 'youtube:detail' id=video.video_id %}">{{ video.video_name }} </a>
114
+
115
+ </div>
116
+
117
+ {% endfor %} {% endblock %}
118
+
119
+ ```