部分的に完成したフォームセットを保存するための単純な「チェックポイント」システムを実装しようとしています。データ入力プロジェクト用の大きなフォーム (たとえば 100 エントリ) のセットがあります。さて、その人が途中でやめたり、途中で何かをしたりした場合、この進行状況を保存したいと思いますが、半分入力されたデータは、完了するまでデータベースに保存したくありません。
私が知る限り、これに対処する最善の方法はrequest.POST
、データベース フィールドに保存してから再度取り出すことです。
def myview(request, obj_id):
obj = get_object_or_404(Task, obj_id)
if request.POST:
# save checkpoint
obj.checkpoint = serializers.serialize("json", request.POST)
else:
# load last version from database.
request.POST = serializers.deserialize("json", obj.checkpoint)
formset = MyFormSet(request.POST)
# etc.
しかし、これにより次のエラーが発生します。
'unicode' object has no attribute '_meta'
シンプルなjsonとpickleを試してみましたが、同じエラーが発生しました。これを回避する方法はありますか?