これは、私が使用してきた標準的なビューコードパターンです。これは、より詳細な返信応答、エラー処理、フォームの検証/チェックなどを行うことができます。
def payment_details(request, obj_id):
yourobj = get_object_or_404(Obj, pk=obj_id)
form = TheForm(instance=yourobj)
if request.method == 'POST':
form = TheForm(request.POST, instance=yourobj)
if form.is_valid():
yourobj = form.save()
messages.success(request, 'Yourobj is saved!')
url = reverse('SOMEURL')
return redirect(url)
template = 'SOMETEMPLATE'
template_vars = {'TEMPLATEVARS': TEMPLATEVARS}
return render(request, template, template_vars)
は1つが、このような上記のビューを再作成することもでき、Advanced Forms talk DjangoConで見た:
def payment_details(request, obj_id):
yourobj = get_object_or_404(Obj, pk=obj_id)
form = TheForm(request.POST or NONE, instance=yourobj)
if request.method == 'POST' and form.is_valid():
yourobj = form.save()
messages.success(request, 'Yourobj is saved!')
url = reverse('SOMEURL')
return redirect(url)
template = 'SOMETEMPLATE'
template_vars = {'TEMPLATEVARS': TEMPLATEVARS}
return render(request, template, template_vars)
右 - POSTが無効である場合、あなたは再レンダリングすることを確認したいのに部分データを含むビュー – Dougal
@Dougal、良い点 - 私は私の答えを更新しました。 – BluesRockAddict