Django: - 访问下一页页面上按下的单个按钮的值

时间:2016-04-04 15:48:23

标签: python django request

我正在显示多个按钮,可以为数据库中可用的任何一个竞赛选择一个按钮。这是我的页面

<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的新手。

1 个答案:

答案 0 :(得分:2)

这是一个Python语法问题,它并不是关于Django的。由于request.POST.get()是一种方法,因此您应该使用括号,而不是方括号。

request.POST.get('Contest')

如果直接访问字典,则使用方括号:

request.POST['Contest']

请注意,如果字典中没有密钥,则会抛出KeyError