我知道这是一个简单的问题,我只是没有得到什么......所以,谢谢你的耐心和建议。
我有一个视图,要求用户注册使用我们的应用程序。他/她提交的数据存储在数据库中,然后将其发送到另一个页面以设置应用程序:
#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 /',而是需要根据数据库中的PK将每个用户发送到他自己的页面,如:'/ dev / PrimaryKey /'我不确定如何在视图文件或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)
答案 0 :(得分:2)
您可以在leaguePage上进行反向查找以进行重定向,传递解析模式所需的值。您需要为要反转的URL模式添加名称,但基本上语法为:
return HttpResponseRedirect(reverse('my_detail', args=(), kwargs={'id' : id}))
示例网址格式和视图:
urlpatterns = patterns('my_app.views',
url(r'^my-pattern/(?P<id>\d+)/$', 'my_action', name='my_detail'),
)
def my_action(request, id):
#do something
希望能帮到你。