前提・実現したいこと
上記画像のエラーが出てしまったので
エラーの解決策を知りたいです。
実現したいことはユーザー情報の詳細ページにある「いいね」を押して
関数ビューを機能させたいです。
こちらのサイトを参考にコードを変更しました。
発生している問題・エラーメッセージ
django.urls.exceptions.NoReverseMatch: Reverse for '<WSGIRequest: GET '/12/like/'>' not found. '<WSGIRequest: GET '/12/like/'>' is not a valid view function or pattern name.
該当のソースコード
django
1#urls.py 2 3urlpatterns = [ 4 path('', views.TopView.as_view(), name='top'), 5 path('<int:pk>/', views.DetailView.as_view(), name='detail'), 6 path("<int:pk>/like/", views.like, name="like"), #いいねURL 7] 8
該当のソースコード
django
1#views.py 2 3class TopView(generic.ListView): 4"""ユーザー情報一覧表示ビュー""" 5 model = User 6 template_name = 'register/top.html' 7 paginate_by = 8 8 queryset = User.objects.order_by('-created_at') 9 10def like(request, pk): 11"""いいね機能""" 12 try: 13 user = User.objects.get(pk=pk) 14 except User.DoesNotExist: 15 raise Http404 16 user.like += 1 # ここでいいねの数を増やす 17 user.save() # 保存をする 18 return redirect(request, 'register:detail', pk) 19
該当のソースコード
django
1#models.py 2 3class User(AbstractBaseUser, PermissionsMixin): 4"""カスタムユーザーモデル.""" 5"""他省略""" 6 like = models.IntegerField(default=0)
該当のソースコード
html
1#detail.html 2 3<p><a href="{% url 'register:like' user.pk %}"><span id="like">{{ user.like }}</span>いいね!</a></p>
該当のソースコード
django
1#アプリ直下/urls.py 2 3from django.conf import settings 4from django.conf.urls.static import static 5from django.contrib import admin 6from django.urls import path, include 7 8 9urlpatterns = [ 10 path('admin/', admin.site.urls), 11 path('', include('register.urls')), 12 path('auth/', include('social_django.urls', namespace='social')), # <- Here# 13 path('', include('social_django.urls')), 14 15]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 16 17 18urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 19
補足情報(FW/ツールのバージョンなど)
ユーザー情報の詳細ページは会員登録した方が入力した情報で
上記のページは誰でも見ることが可能なページとなっております。
詳細ページの表示まではできたのですが、「いいね」をクリックすると
エラーメッセージが表示されエラーメッセージを調べても解決策が見つからないという現状となっております。
return部分のrequestを削除すると下記の様に
def like(request, pk):のrequest部分がノンアクティブになります。
なぜでしょうか?
回答1件
あなたの回答
tips
プレビュー