작동하려면 Creatview() 클래스 기반 함수를 얻었습니다. 제출이 성공하면 이미 데이터가 있으며 '성공'페이지가 표시됩니다.django에 저장하기 전에 데이터를 미리보기하기 위해 CreateView 비헤이비어를 변경
이 동작을이 방법으로 변경하고 싶습니다. CreateView()가 성공하면 데이터의 유효성을 검사하지만 저장하지 않았 으면합니다. 성공 페이지로 이동하는 대신 새로 작성한 인스턴스를 표시하기 위해 DetailView() 클래스를 사용하고 싶습니다. 따라서 사용자는 데이터가 결국 저장 될 때 어떻게 보이는지 알 수 있습니다 ..
사용자는 표시된 데이터에 만족하고, 사용자는 "저장"을 클릭하여 데이터가 저장되고 CreateView()가 완료되거나 사용자가 "다시 편집"을 클릭 할 수 있으며 데이터를 변경하기 위해 양식으로 돌아갈 수 있습니다 DetailView()를 사용하여 새로 생성 된 인스턴스를 표시합니다 (사용자가 만족할 때까지 반복). 클래스 기반 뷰를 우아하게 사용하여이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
from django.views.generic.edit import CreateView
from restaurant.models import Restaurant
from restaurant.forms import RestaurantForm
import uuid
class RestaurantCreate(CreateView):
form_class = RestaurantForm
template_name = 'restaurant_form.html'
model = Restaurant
def form_valid(self, form):
form.instance.created_by = self.request.user
form.instance.life_id = str(uuid.uuid1())
return super(RestaurantCreate, self).form_valid(form)
또한 폼 마법사에 대해 알고 있지만 여러 페이지 양식이 없습니다. 무시해도 폼 마법사는 최종 저장 전에 데이터를 미리 볼 수있는 기회를 제공하지 않습니다.
편집 : google groups에 관련 논의,하지만 솔루션
+1은 CCBV를 언급합니다. (나는 그것을 만들었습니다 :) – meshy
@meshy 당신이 그것을 만들었 기 때문에 다행히, 아마 당신이 어떻게 성취의 스 니펫을 공유 할 수 있을까요? – Rexford