클래스 기반의 일반 뷰 UpdateView를 사용하여 장고에서 모델을 업데이트하려고합니다.어떻게 UpdateView를 사용하여 장고 모델을 업데이트합니까?
내가 노력하고 내가 시작 페이지 Updating User model in Django with class based UpdateView를 읽을 수 있지만 내가 오류 'WSGIRequest'개체가 어떤 속성 'ID'내가 장고에 새로운 얼굴이야
이 없습니다 받고 있어요, 그래서 용서하시기 바랍니다 내가 바보 같은 짓을하고 있다면.
//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 매개 변수로 전달 된 ID를 검색하려고하지만 그 요청 변수에서 오는 것 같지 않습니다. 내가 잘못된 방향으로가는거야?
감사
편집
: 나는 그것을 고정 생각하지만,이 잘못 될 수 있습니다 내가self.object = Portfolios.objects.get(id=self.kwargs['id'])
obj = Portfolios.objects.get(id=self.kwargs['id'])
에 선을
self.object = Portfolios.objects.get(id=self.request.id)
obj = Portfolios.objects.get(id=self.request.id)
을 내가 잘못 될 수 변경되었습니다.
업데이트로 인해 원래 버그가 올바르게 수정되었습니다. 나는 왜 당신이''get'' 메소드를 오버라이드 할 필요가 있는지 보지 못한다. 어쨌든''UpdateView''가 후드에서하는 것처럼 보입니다. – Raekkeri