我已经让基于Creatview()类的函数工作了。当提交成功时,它已经有数据并显示“成功”页面。
我想以这种方式改变这种行为:当 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)
另外,我知道表单向导,但我没有多页表单。即使我忽略了这一点,表单向导也不会在最终保存之前提供预览数据的机会。
编辑:关于谷歌群组的相关讨论,但没有解决方案