我正在显示多个按钮,可以为数据库中可用的任何一个竞赛选择一个按钮。这是我的页面
<h1>Contests Active</h1>
{% for contest in all_contest %}
<form action="/confirm/" method = 'post'>
Select the contest
{% csrf_token %}
<button name="Contest" type="submit" value="{{ contest.name }}">{{ contest.name }}</button>
</form>
{% endfor %}
我希望获得下一页按下的按钮的值,以显示与该比赛相关的内容,只有这些是我的观点。
def listcontest(request):
all_contest = Contest.objects.all()
return render(request,'sure.html',{'all_contest':all_contest})
def sure(request):
if request.method == "POST":
contest = request.POST.get['Contest']
do_something();
return render_to_response('sure.html',{'contest_name':contest})
这是我的网址
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^contest/',views.listcontest),
url(r'^confirm/',views.sure),
]
我收到的错误实例方法没有属性__getitem__
请帮我。我是django的新手。
答案 0 :(得分:2)
这是一个Python语法问题,它并不是关于Django的。由于request.POST.get()
是一种方法,因此您应该使用括号,而不是方括号。
request.POST.get('Contest')
如果直接访问字典,则使用方括号:
request.POST['Contest']
请注意,如果字典中没有密钥,则会抛出KeyError
。