获得' GET' views.py中的参数

时间:2014-01-26 15:02:27

标签: python django web

我试图从我的一个模板页面获取'GET'参数,称为'id'(例如issues.html?id = 1),并使用它从我的sqlite数据库执行各种检索。但是,当我运行以下代码时,我收到错误“'QueryDict'对象没有属性'id'”

以下是views.py中的一些代码:

def issues(request):
    # Retrive basic legislation details from GET parameter
    legislation_id = request.GET.id
    legislation = Legislation.objects.filter(id = legislation_id)[0]

    # Getter functions from database - names are pretty self-explanatory
    def get_buttons():
        button_html = ""
        for tag in legislation.demographic_tags:
            button_html += "<input type='button' class='button' onclick='showtag"+tag.hash_code+"();' value='"+tag.name+"'>"
        return button_html
    def get_description():
        return legislation.description
    def get_script():
        return ""
    def get_sponsor():
        return legislation.sponsor
    def get_summary():
        return legislation.summary
    def get_title():
        return legislation.name

    # Return results back to page
    return render(request, 'issues.html',
{'buttons': get_buttons(), 'description': get_description(), 'script': get_script(), 'sponsor': get_sponsor(),
'summary': get_summary(), 'title': get_title()})

1 个答案:

答案 0 :(得分:1)

您的问题似乎在这里:legislation_id = request.GET.id

request.GET是一本字典,所以你需要得到它的密钥:

legislation_id = request.GET["id"]

您也可以使用dict的{​​{1}}方法获取密钥,@ Alvaro建议:get。如果request.GET.get("id", 0)密钥不存在,这将默认返回0,并使您免于id例外。

希望这有帮助!