반응형
2021.12.14 - [Study/Django] - [Django] Django 클래스형 뷰 ( Generic View- DetailView) # 4
이번 게시글에선 UpdateView를 사용해볼 건데요.
이전에 사용했던 것들과 별로 다르지 않아 이전 것을 사용해보셨다면 아주 쉽게 사용할 것입니다.
아래 코드는 함수형 뷰로 구현한 UpdateView입니다.
def page_update(request, page_id):
page = Page.objects.get(id=page_id)
if request.method == 'POST':
page_form = PageForm(request.POST, instance=page)
if page_form.is_valid():
page_form.save()
return redirect('page-detail', page_id=page.id)
else:
page_form = PageForm(instance=page)
return render(request, 'diary/page_form.html', {'form': page_form})
그리고 아래 코드가 제네릭 뷰의 UpdateView를 사용한 것입니다.
class PageUpdateView(UpdateView):
model = Page
form_class = PageForm
pk_url_kwarg = 'page_id'
def get_success_url(self):
return reverse('page-detail', kwargs={'page_id': self.object.id})
model = <사용할 모델>
form_class = <사용할 Form>
template_name = <랜더링 할 Template>
pk_url_kwarg = <데이터를 조회할 조건(key)>
def get_success_url(self):
return reverse('<이동할 URL>', kwargs={'<URL에 전달할 키워드>': <전달할 값>})
반응형
'Study > Django' 카테고리의 다른 글
[Django] 장고 유저 기능 구현하기 #1 (allauth와 contrib.auth의 차이) (0) | 2021.12.14 |
---|---|
[Django] Django 클래스형 뷰 ( Generic View- DeleteView) # 6 (0) | 2021.12.14 |
[Django] Django 클래스형 뷰 ( Generic View- DetailView) # 4 (0) | 2021.12.14 |
[Django] Django 클래스형 뷰 ( Generic View- ListView) # 3 (0) | 2021.12.14 |
[Django] Django 클래스형 뷰 ( Generic View - CreateView) # 2 (0) | 2021.12.14 |