인프런 커뮤니티 질문&답변

준영님의 프로필 이미지
준영

작성한 질문수

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

장고 기본 CBV API (Generic editing views)

PostUpdateView가 변경된 form 을 저장하지 않습니다.

작성

·

228

0

class PostUpdateView(LoginRequiredMixin,UpdateView):
    model = Post
    form_class = PostForm

    def form_valid(self, form):
        messages.success(self.request, '포스팅을 수정했습니다.')
        return super().form_valid(form)

post_edit = PostUpdateView.as_view()
 
선생님과 같이 해당 코드를 작성해봤는데요 이게 저장과 메세지는 구현이 되는데
실제로 변경사항이 저장되지는 않는듯 합니다

답변 2

0

이진석님의 프로필 이미지
이진석
지식공유자

안녕하세요.

사용하신 UpdateView가 아래 경로의 CBV라면 form_valid  시에 form.save() 가 호출됩니다. 그러니 부모의 form_valid 를 호출해주면 저장이 되어야하는 것이 맞습니다.

from django.views.generic import UpdateView

혹시 소스 파일 저장이 안 되셨던 것은 아닐까요?

관련 장고 소스코드 : https://github.com/django/django/blob/3.0.14/django/views/generic/edit.py#L125

0

준영님의 프로필 이미지
준영
질문자

messages.success(self.request, '포스팅을 수정했습니다.')
        form.save()
        return super().form_valid(form)
이렇게 첨부해주니 변경사항 저장이 되네용
준영님의 프로필 이미지
준영

작성한 질문수

질문하기