2017-01-15 7 views
0

おはようございます私はdjangoでアプリケーションをやっています。レコードを作成した後、HttpresponseRedirectでこの新しいレコードのIDを新しいビューと別のテンプレートに取ります。あなたがする必要はありません(と本当にべきではありません)HttpResponseRedirectで生のURLを使用IDを送る方法新しいレコードを作成した後Django?

url.py

urlpatterns = [ 
    url(r'^$', beneficiario, name='beneficiario'), 
    url(r'^beneficiario_create/(?P<id>\d+)/$', beneficiario_create, name='beneficiario_create'),  
] 

wiews.py

def datosBasicos(request): 
    if request.method == 'POST': 
     beneficiario = Beneficiario() 
     beneficiario.numeroDocumento = request.POST['numeroDocumento'] 
     beneficiario.nombreUno = request.POST['nombreUno'] 
     beneficiario.save() 
     ben = Beneficiario.objects.get(id=beneficiario.id) 
     messages.success(request, validator.getMessage()) 
     return HttpResponseRedirect('/beneficiario/beneficiario_create/%d/'%ben.id) 
    return render(request,'datosBasicos.html', informacion) 

def beneficiario_create(request, id): 
    beneficiario = Beneficiario.objects.get(id = id) 
    return render(request,'beneficiario_create.html') 
+0

私はあなたの質問が何であるかわからないんだけど。この 'return redirect( 'beneficiario_create'、id = beneficiario)のように[' redirect'](https://docs.djangoproject.com/en/1.10/topics/http/shortcuts/#redirect)でURLを構築してみてください。 pk) ' –

+0

このエラーを返す' 'beneficiario_create'を引数 '()'で置き換え、キーワード引数 '{}'を見つけられません。 1つのパターンが試されました:['beneficiario/beneficiario_create /(?P \\ d +)/ $'] ' – jhon1946

答えて

3

、あなたはreverse()を使用することができましたURL kwargを含めることができます。たとえば:

return HttpResponseRedirect(reverse('beneficiario_create', kwargs={'id': ben.id)) 

HttpResponseRedirectreverseを結合するには、次のようなジャンゴショートカットメソッドredirectを使用することができます。

from django.shortcuts import redirect 
return redirect('beneficiario_create', id=ben.id) 
+1

[' redirect'](https://docs.djangoproject.com/ja/1.10)/topics/http/shortcuts /#redirect) –

+0

このエラーを取得します。 'beneficiario_create'を引数 '()'で置き換え、キーワード引数 '{}'を見つけられません。 1つのパターンが試されました:['beneficiario/beneficiario_create /(?P \\ d +)/ $'] ' – jhon1946

+0

URL kwargを変更したので、今度は' id_ben = ben.id' –

関連する問題