前提・実現したいこと
やりたいこと: Viewsで変更したことをデータベースに反映させたい。
具体的に:これが意味をなしてない。(one_num はindex番号なので+1しました)
python
1 print(Song.objects.filter(pk=one_num + 1).update(skips=current_skips)) 2
問題点: updateしているつもりなのだが、されていない。
なにをしたいのか(全体的に):Youtubeの動画をスキップした数だけskipのデータテーブルに保存したい。
発生している問題・エラーメッセージ
python
1start___________ 2lists of all items done: 3before+++++++++++++++++ 4[4, 3, 2, 2] 5+++++++++++++++++++++++ 63 7[4, 3, 2, 2] 8[4, 4, 2, 2] 94 10<QuerySet [4, 3, 2, 2]> 110 12<QuerySet [4, 3, 2, 2]> 13++++++++++++++++++++++++ 14[4, 4, 2, 2] 15after+++++++++++++++++++ 16[07/Sep/2019 04:10:34] "GET /abc HTTP/1.1" 200 6 17start___________ 18lists of all items done: 19before+++++++++++++++++ 20[4, 3, 2, 2] 21+++++++++++++++++++++++ 223 23[4, 3, 2, 2] 24[4, 4, 2, 2] 254 26<QuerySet [4, 3, 2, 2]> 270 28<QuerySet [4, 3, 2, 2]> 29++++++++++++++++++++++++ 30[4, 4, 2, 2] 31after+++++++++++++++++++ 32[07/Sep/2019 04:10:34] "GET /abc HTTP/1.1" 200 6 33---------------------------------------- 34Exception happened during processing of request from ('127.0.0.1', 54134) 35Traceback (most recent call last): 36 File "/Users/natsukikataoka/anaconda3/lib/python3.7/socketserver.py", line 650, in process_request_thread 37 self.finish_request(request, client_address) 38 File "/Users/natsukikataoka/anaconda3/lib/python3.7/socketserver.py", line 360, in finish_request 39 self.RequestHandlerClass(request, client_address, self) 40 File "/Users/natsukikataoka/anaconda3/lib/python3.7/socketserver.py", line 720, in __init__ 41 self.handle() 42 File "/Users/natsukikataoka/env_django/lib/python3.7/site-packages/django/core/servers/basehttp.py", line 171, in handle 43 self.handle_one_request() 44 File "/Users/natsukikataoka/env_django/lib/python3.7/site-packages/django/core/servers/basehttp.py", line 179, in handle_one_request 45 self.raw_requestline = self.rfile.readline(65537) 46 File "/Users/natsukikataoka/anaconda3/lib/python3.7/socket.py", line 589, in readinto 47 return self._sock.recv_into(b) 48ConnectionResetError: [Errno 54] Connection reset by peer 49---------------------------------------- 50lists of all items done: 511 52got random num 532 54ok? 55fine? 56[4, 2, 2, 3] 57[4, 2, 2, 3] 58done here____________________________________________________________________```
自分のソースコード
python
1 2def api(request): 3 res = HttpResponse("foobar", content_type="text/plain") 4 print('start___________') 5# _____________________________________________________ 6 all_song_titles = Song.objects.all().order_by("songId") 7 all_song_values = Song.objects.order_by("songId").values() 8 9 num = len(all_song_values) 10# _____________________________________________________ 11 all_songs = [] 12 all_ids = [] 13 all_skips = [] 14# _____________________________________________________ 15 for i in range(num): 16 all_songs.append(all_song_values[i]['songTitle']) 17 all_ids.append(all_song_values[i]['songId']) 18 all_skips.append(all_song_values[i]['skips']) 19 print('lists of all items done:') 20 21 # one_num = random.randrange(len(all_ids)) 22 one_num = 1 23 24 25 using_ids = all_ids[one_num] 26 using_title = all_songs[one_num] 27 current_skips = all_skips[one_num] 28 29 print("before+++++++++++++++++") 30 print(all_skips) 31 print("+++++++++++++++++++++++") 32 print(current_skips) 33 current_skips = 1 + current_skips 34 35 print(all_skips) 36 all_skips[one_num] = current_skips 37 # ab = all_skips[one_num] 38 # cd = current_skips 39 print(all_skips) 40 41 # p = Song.objects.get(pk=one_num + 1) 42 # p.skips = current_skips 43 # p.save(save_fields=['skips']) 44 print(current_skips) 45 print(Song.objects.all().order_by("songId").values_list("skips", flat=True)) 46 47 print(Song.objects.filter(pk=one_num + 1).update(skips=current_skips)) 48 49 print(Song.objects.all().order_by("songId").values_list("skips", flat=True)) 50 51 # b = Song.objects.get(pk=one_num + 1) 52 # print(b) 53 # print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") 54 # b.delete() 55 56 print("++++++++++++++++++++++++") 57 print(all_skips) 58 print("after+++++++++++++++++++") 59 return res 60 return render(request, 'lemon.html', {'using_ids': using_ids, 'using_title':using_title, 'current_skips':current_skips}) 61
Javascript
1 2<button id = "btn" type="button" class="btn btn-outline-primary btn-lg" name="button"><i class="fas fa-random"></i></button> 3 4<!-- <button id='btn'name='please' type="SUBMIT">skip/shuffle</button> --> 5 6<!-- __________________________________________________________________________________________________________________________________________________________ --> 7 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> 8 9 <script type="text/javascript"> 10 var btn = document.getElementById('btn'); 11 btn.addEventListener('click', function() { 12 console.log('クリックされました!'); 13 $.ajax({ 14 url: "/abc", 15 }).then( 16 function (data) { 17 console.log("success"); 18 window.location.reload(); 19 }, function (err) { 20 console.log("error"); 21 } 22 ); 23 location.href = "abc" ; 24 25 }, false); 26 </script>
本当にお願いします!お願いします!
あなたの回答
tips
プレビュー