Как использовать UpdateView для обновления модели Django?

Я пытаюсь обновить модель в Django, используя обобщенное представление на основе классов UpdateView.

Я прочитал страницуОбновление пользовательской модели в Django с помощью класса UpdateView чтобы попытаться начать, но я получаю сообщение об ошибке «Объект WSGIRequest» не имеет атрибута «id»

Я по-новому отношусь к Джанго, поэтому, пожалуйста, простите меня, если я делаю что-то глупое.

//urls.py

url(r'^portfolios/update/(?P<id>\d+)/

//views.py

class PortfoliosUpdateView(UpdateView):
    form_class = PortfoliosCreateForm
    model = Portfolios
    template_name = 'portfolios/create.html'

    def get(self, request, **kwargs):
        self.object = Portfolios.objects.get(id=self.request.id)
        form_class = self.get_form_class()
        form = self.get_form(form_class)
        context = self.get_context_data(object=self.object, form=form)
        return self.render_to_response(context)

    def get_object(self, queryset=None):
        obj = Portfolios.objects.get(id=self.request.id)
        return obj

В основном это просто измененная версия исходного кода, но я подумал, что это сработает. Я знаю, что пытаюсь получить идентификатор, переданный в качестве параметра GET, но в переменной запроса это, похоже, не проходит. Я поступаю об этом неправильно?

Спасибо

Редактировать: я думаю, что я это исправил, но это может быть неправильно: я изменил строки

self.object = Portfolios.objects.get(id=self.request.id)
obj = Portfolios.objects.get(id=self.request.id)

в

self.object = Portfolios.objects.get(id=self.kwargs['id'])
obj = Portfolios.objects.get(id=self.kwargs['id'])

Я могу ошибаться.

,PortfoliosUpdateView.as_view()),

//views.py

class PortfoliosUpdateView(UpdateView):
    form_class = PortfoliosCreateForm
    model = Portfolios
    template_name = 'portfolios/create.html'

    def get(self, request, **kwargs):
        self.object = Portfolios.objects.get(id=self.request.id)
        form_class = self.get_form_class()
        form = self.get_form(form_class)
        context = self.get_context_data(object=self.object, form=form)
        return self.render_to_response(context)

    def get_object(self, queryset=None):
        obj = Portfolios.objects.get(id=self.request.id)
        return obj

В основном это просто измененная версия исходного кода, но я подумал, что это сработает. Я знаю, что пытаюсь получить идентификатор, переданный в качестве параметра GET, но в переменной запроса это, похоже, не проходит. Я поступаю об этом неправильно?

Спасибо

Редактировать: я думаю, что я это исправил, но это может быть неправильно: я изменил строки

self.object = Portfolios.objects.get(id=self.request.id)
obj = Portfolios.objects.get(id=self.request.id)

в

self.object = Portfolios.objects.get(id=self.kwargs['id'])
obj = Portfolios.objects.get(id=self.kwargs['id'])

Я могу ошибаться.

Ответы на вопрос(2)

Ваш ответ на вопрос