NoReverseMatch
Reverse for 'administrater_update' with keyword arguments '{'pk': ''}' not found. 1 pattern(s) tried: ['administrater_update/(?P<pk>[0-9]+)/$']
上記エラーが出て解決できません。
現在djangoを使用して会員制サイトを構築しています。
updateviewを使用して、会員情報を修正できるページを構築し表示しようとしていますが、表示できません。
問題のソースコードです。
html
1<div class="contain"> 2 <div class="container"> 3 <div class="user_information"> 4 <div class="user_list"> 5 <table> 6 {% for administrater in object_list %} 7 <tr> 8 <td>担当者 性</td> 9 <td>{{ administrater.administrater_lastname }}</td> 10 </tr> 11 〜略〜 12 <p> 13 <a href="{% url 'checkn:administrater_update' pk=admininistrater.id %}">修正する</a> 14 </p> 15 {% endfor %} 16 </table> 17 <p> 18 <a href="#">確定</a> 19 </p> 20 </div> 21 </div> 22 </div> 23</div>
上記ソースコードの
<p> <a href="{% url 'checkn:administrater_update' pk=admininistrater.id %}">修正する</a> </p>
のpk=administraner.idでエラーが起きています。pkにadministraterの主キーを渡してprimarykeyに入れようとしていますが、上手くadministraterモデルの主キーが渡らない様です。
実際にデータベース上を確認し、administraterのidが11だったので、
html
1<p> 2 <a href="{% url 'checkn:administrater_update' 11 %}">修正する</a> 3</p> 4
とすると正常に作動しました。
python
1#views.py 2class AdministraterUpdateView(LoginRequiredMixin,generic.UpdateView): 3 model = Administrater 4 template_name = 'administrater_update.html' 5 form_class = AdministraterForm 6 def get_success_url(self): 7 return reverse('checkn:administrater_confirm', kwargs={'pk': self.object.pk}) 8 def get_form(self): 9 form = super(AdministraterUpdateView, self).get_form() 10 form.fields['administrater_lastname'].label = '管理者情報' 11 ~略~ 12 return form
python
1from django.urls import path 2from . import views 3 4app_name = 'checkn' 5 6urlpatterns = [ 7 ~略~ 8 path('administrater_update/<int:pk>/', views.AdministraterUpdateView.as_view(), name='administrater_update'), 9 path('administrater_confirm/<int:pk>/', 10] 11 ~略~
書き方がどう間違っているのかわかりません。
なぜでしょうか?
回答1件
あなたの回答
tips
プレビュー