Django「get() に予期しないキーワード引数 'pk' が取得されました」エラー 質問する

Django「get() に予期しないキーワード引数 'pk' が取得されました」エラー 質問する

オブジェクトのホームページとして実装する予定のページを作成後、そのページにリダイレクトしようとしています。

以下は私のviews.pyの対応する部分です。

            new_station_object.save()
            return HttpResponseRedirect(reverse("home_station", 
                                                kwargs={'pk':   new_station_object.id}
            ))

class StationHome(View):
    def get(self, request):
        return HttpResponse("Created :)")

そして私の urls.py の対応する部分;

    url(r'^station/(?P<pk>\d+)$', StationHome.as_view(),    name='home_station'),

しかし、上記のエラーが発生します。

TypeError at /station/2
get() got an unexpected keyword argument 'pk'

誰か助けてください。

ベストアンサー1

関数は想定より 1 つ多い引数を取得しています。次のように変更します。

def get(self, request, pk):

pk の値は一致したパターンと等しくなり、数値になるように指定したため、pk の型は int になります。

おすすめ記事