Подтвердить что ты не робот

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'

Кто-то, пожалуйста, помогите мне.

4b9b3361

Ответ 1

Функция получает один аргумент больше, чем предполагалось. Измените его на:

def get(self, request, pk):

Значение pk будет равно совпадению шаблона, и поскольку вы указали, что оно будет числом, тип pk будет int.

Ответ 2

добавьте kwargs в определение метода:

def get(self, request, *args, **kwargs):
    return HttpResponse("Created :)")