1

モデル インスタンスのフィールドを表示できるようにするテンプレートをもたらす urlpattern があります。

(r'^display/(?P<id>\w+)/', display_record),

単一のインスタンスを編集できるビュー機能もあります。オブジェクトが保存されると、単純に同じテンプレートに戻ります。

if form.is_valid():
        form.save()
        return HttpResponseRedirect('/')

保存後、同じビューを更新するのではなく、表示テンプレートに戻るにはどうすればよいですか? コードは次のようになりますが、オブジェクト「id」を HttpResponse リクエストに渡す方法が必要です。

def edit_record(request, id):
        if request.method == 'POST':
                a=ProjectRecord.objects.get(pk=id)
                form = RecordForm(request.POST, instance=a)
                if form.is_valid():
                        form.save()
                        return HttpResponseRedirect**('/display/(?P<id>\w+)/')**
        else:
                a=ProjectRecord.objects.get(pk=id)
                form = RecordForm(instance=a)
        return render_to_response('productionModulewire.html', {'form': form})
4

1 に答える 1

6

あなたは物事を過度に複雑にしています。ID が何であるかは既にわかっているのに、なぜ ID を URL に戻せないのでしょうか?

return HttpResponseRedirect('/display/%s/' % id)

または、特定のハードコードされた URL に結び付けられないため、より良い方法です。

return HttpResponseRedirect(reverse('edit_record', kwargs={'id':id}))
于 2009-12-27T20:19:26.033 に答える