私は達成したいことの説明から始めます。 基本的には、各項目がボタンのように見えるページに配列アイテムを表示したい場合は、クリックするとビュー(結果)にリダイレクトされ、引数(つまりそれ自体)が渡されます。Djangoは1つのビュー/ URLから別のURLにリダイレクトされません
PYこの
def prefs(request):
if request.method == 'POST':
for i in user_queryset(request): #this function returns an array
if i in request.POST.values():
return redirect(reverse('results',kwargs={'UserChoice':i}))
elif not request.user.is_authenticated():
return HttpResponse('Please login or sign-up to use this feature')
else:
uid = request.user
return render(request,'test.html',{'form':user_queryset(request,uid)})
def results(request,UserChoice):
if request.method =='GET':
return render(request,'test2.html',{'objects':request_places(request,UserChoice)}) #another function that I need to use the arguments in
else:
return HttpResponse('Hello, World!')
私urls.py
url(r'places/$',views.prefs,name='prefs'),
url(r'^places/results/(?P<UserChoice>[^\/]*)/$', views.results, name='results')
と私のテンプレート
test.htmlという
のように見えます<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li>
<form action="" >
{% for obj in form %}
<!--<input type="text" name="{{ obj }} ">-->
<input type="submit" value="{{ obj }}">
</form>
</li>
{% endfor %}
</ul>
</body>
</html>
</ul>
とtest2.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello, World!</title>
<li>
{% for items in objects %}
<h>{{ items.name }} - {{ items.formatted_address }}</h>
</li>
{% endfor %}
</head>
<body>
</body>
</html>
あなたの現在のステータスは?何かエラーがありますか? – rajkris
@rajkrisこのテンプレートの「試行錯誤」の後は、リダイレクトされませんが、その前にURLではなく「test2.html」ページにリダイレクトされます:/ – nexla
両方のhtmlページを投稿できますか? test.htmlとtest2.html – rajkris