2012-02-21 16 views
1

これは簡単な質問ですが、私は何かを手に入れていません...あなたの忍耐とアドバイスをいただきありがとうございます。Djangoはdbからデータを取得してURLパターンを完成させます

私は、ユーザーに私たちのアプリの使用を登録するように頼むビューを持っています。私は、

#views.py 

def regPage(request, id=None): 
    form = RegForm(request.POST or None, 
         instance=id and UserRegistration.objects.get(id=id)) 

    # Save new/edited pick 
    if request.method == 'POST' and form.is_valid(): 
     form.save() 
     return HttpResponseRedirect('/dev/leaguepage/') 
    user_info = UserRegistration.objects.all() 
    context = { 
     'form':form, 
     'user_info' :user_info, 
    } 

    return render(request, 'regpage.html', context) 

ではなく、同じページにすべてのユーザーを送信「は/ dev/leaguepage /」:彼/彼女が提出したデータはデータベースに格納され、彼はアプリケーションを設定するために別のページに送り出されます'/ dev/PrimaryKey /'のようなデータベースのPKに基づいて自分のページに各ユーザーを送る必要があります。ビューファイルまたはURLs.pyファイルのいずれかでこれを行う方法がわかりません:

#urls.py 

from django.conf.urls.defaults import patterns, include, url 
from acme.dc_django import views 

urlpatterns = patterns('', 

    url(r'^leaguepage/$','acme.dc_django.views.leaguePage'), 




    url(r'^$', 'acme.dc_django.views.regPage'), 
) 

ありがとうございました!

DP

更新コード:

#url 
    url(r'^user/(?P<id>\d+)/$','acme.dc_django.views.leaguePage', name="league_page"), 

#view 
    def regPage(request, id): 
    form = RegForm(request.POST) 

    # Save new/edited pick 
    if request.method == 'POST' and form.is_valid(): 
     form.save() 
     return HttpResponseRedirect(reverse('league_page', kwargs={'id' :id})) 
     #return HttpResponseRedirect('/dev/leaguepage/') 
    user_info = UserRegistration.objects.all() 
    context = { 
     'form':form, 
     'user_info' :user_info, 
    } 

    return render(request, 'regpage.html', context) 

答えて

2

あなたはパターンを解決するために必要な値を渡し、あなたのリダイレクトを行うには、あなたのleaguePage上の逆引き参照を行うことができます。あなたが逆転したいURLパターンに名前を追加する必要がありますが、基本的な構文は次のとおりです

return HttpResponseRedirect(reverse('my_detail', args=(), kwargs={'id' : id})) 

例URLパターンとビュー:あなたを助け

urlpatterns = patterns('my_app.views', 
    url(r'^my-pattern/(?P<id>\d+)/$', 'my_action', name='my_detail'), 
) 

def my_action(request, id): 
    #do something 

希望。

+0

もし私が正しく理解するならば、私はurls.pyページにパターンを書かなければならないでしょう、そしてここに逆のコードを使ってargs/kwargsにフィードして私が望む応答を得る必要があります。 – dpbklyn

+0

これは正しいです。私は、URLの例で私の答えを補強します。 – Brandon

+0

ブランドン、ありがとう! – dpbklyn

関連する問題