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)
また、フォーム ウィザードについては知っていますが、複数ページのフォームはありません。それを無視しても、フォームウィザードは最終保存前にデータをプレビューする機会を与えません.
編集:Googleグループに関する関連する議論、しかし解決策はありません