周知の事実なのかもしれないが、
ユーザ入力が格納されたフォームオブジェクトをsaveする前に
システム側でデータを追加したい場合、フォームオブジェクトの値を
直接変更することができなかったので、フォームオブジェクトに格納された
入力データをモデルオブジェクトにコピーする方法を探したらあった。
views.py
... def company_create(request): if request.method == "POST": CompanyForm = form_for_model(Company) form = CompanyForm(request.POST) if form.is_valid(): company = Company(**form.cleaned_data) #ここ new_code = CodeManager().next('Company', 6) company.code = new_code company.save() return HttpResponseRedirect('/company/list/') else: return render_to_response('company/new.html', {'form': form}) return HttpResponseRedirect('/company/new/') ...
簡単な方法が用意されていた。
マニュアル読んで見つからなかったらソースを読もう。