Я пытаюсь обновить модель в Django, используя универсальное представление UpdateView на основе классов.
Я прочитал страницу Обновление модели пользователя в Django с помощью UpdateView на основе классов , чтобы попытаться запустить меня, но получаю сообщение об ошибке: объект WSGIRequest не имеет атрибута id
Я Я новое лицо для Django, поэтому, пожалуйста, извините, если я делаю что-то глупое.
// urls.py
url(r'^portfolios/update/(?P\d+)/$',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'])
, я мог ошибаться.