質問編集履歴

3

少し追記しました

2020/11/17 08:15

投稿

yhori3
yhori3

スコア7

test CHANGED
File without changes
test CHANGED
@@ -155,3 +155,35 @@
155
155
  という表示でニュースを並べており、記事の隣にクリック数を表示できるようにクリックされた際にview_numberの値を増やすようにしたいのですが、上のコードでurlから記事に飛んでもview_numberは変わりませんでした。
156
156
 
157
157
  count.jsは読み込めており、特にエラーは出ていないのですが、どこを直せばよいでしょうか?
158
+
159
+
160
+
161
+ [追記]
162
+
163
+ count.jsの
164
+
165
+ ```
166
+
167
+ beforeSend: function(xhr, settings) {
168
+
169
+ if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
170
+
171
+ xhr.setRequestHeader("X-CSRFToken", csrf_token);
172
+
173
+ }
174
+
175
+ },
176
+
177
+ ```
178
+
179
+ の部分をコメントアウトしてURLをクリックすると
180
+
181
+ Forbidden (CSRF token missing or incorrect.): /news
182
+
183
+ Forbidden (CSRF token missing or incorrect.): /news
184
+
185
+ [17/Nov/2020 17:09:42] "POST /news HTTP/1.1" 403 2556
186
+
187
+ [17/Nov/2020 17:09:42] "POST /news HTTP/1.1" 403 2556
188
+
189
+ のようなログが出て、CSRF tokenが見つからないとのことですが、上記のコードを再度挿入してクリックしてもリンクに飛ぶだけでPOSTのログは出てきません。

2

views.py変更

2020/11/17 08:15

投稿

yhori3
yhori3

スコア7

test CHANGED
File without changes
test CHANGED
@@ -98,15 +98,7 @@
98
98
 
99
99
  $('.news_'+number).click(function() {
100
100
 
101
- //$.post('./news',{
101
+
102
-
103
- // view_number: 1,
104
-
105
- // news_number: number,
106
-
107
-
108
-
109
- //})
110
102
 
111
103
  $.ajax({
112
104
 

1

views.py変更

2020/11/17 07:06

投稿

yhori3
yhori3

スコア7

test CHANGED
File without changes
test CHANGED
@@ -20,33 +20,25 @@
20
20
 
21
21
  ```views.py
22
22
 
23
- class NewsListView(ListView):
23
+ def news_list(request):
24
24
 
25
- template_name = ''
25
+ news = News.objects.order_by('id').reverse()
26
26
 
27
- model = News
28
-
29
- queryset = News.objects.order_by('id').reverse()
30
-
31
-
32
-
33
- paginate_by = 20
34
-
35
-
36
-
37
- def count_view(request):
38
-
39
- if request.method == 'POST':
27
+ if request.method == 'POST':
40
28
 
41
29
  view_number =int(request.POST['view_number'])
42
30
 
43
31
  news_number =int(request.POST['news_number'])
44
32
 
45
- news = get_object_or_404(News, id=news_number)
33
+ viewd_news = get_object_or_404(News, id=news_number)
46
34
 
47
- news.view_number += view_number
35
+ viewed_news.view_number += view_number
48
36
 
49
- news.save()
37
+ viewd_news.save()
38
+
39
+
40
+
41
+ return render(request, 'mysite/news.html', {'news':news})
50
42
 
51
43
  ```
52
44