Я пытаюсь обновить модель в Django, используя обобщенный обзор UpdateView.Как использовать UpdateView для обновления модели Django?
Я прочитал страницу Updating User model in Django with class based UpdateView, чтобы попытаться получить меня начался, но я получаю сообщение об ошибке объект «WSGIRequest» не имеет атрибут «идентификатор»
Я свежее лицо в Django, так что будьте снисходительными если я делаю что-то глупое.
//urls.py
url(r'^portfolios/update/(?P<id>\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, но это, похоже, не встречается в переменной запроса. Неужели я ошибаюсь?
Благодаря
Edit: Я думаю, что я установил его, но это может быть неправильно: я изменил линий
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'])
Я мог бы быть неправильно.
Ваше исправление исправляет исходную ошибку. Я не понимаю, почему вам нужно переопределить метод '' get'', но похоже, что это '' UpdateView'' делает под капотом в любом случае. – Raekkeri