代码之家  ›  专栏  ›  技术社区  ›  kzh

django url参数键使用了两次

  •  1
  • kzh  · 技术社区  · 14 年前

    我有一个简单的django视图,它只返回url参数,但是如果我多次使用同一个参数键,我似乎无法访问它。考虑以下设置:

    ULLS.PY:

    (r'^header/$',header)
    

    查看功能:

    def header(request)
        return render_to_response('header.html',locals(),mimetype='text/plain')
    

    模板:

    {{ request.GET }}
    {% for key,val in request.GET %}
    {{ key }} : {{ val }}
    {% endfor %}
    

    网址:

    • http://mysite/header/?item=1&item=2

    回应:

    <QueryDict: {u'item': [u'1', u'2']}>
    
    item : 2
    

    “item”条目的值应该是“1,2”还是“['1','2']”?注意full get返回的内容。如何获得这两个值?

    2 回复  |  直到 14 年前
        1
  •  5
  •   Dominic Rodger    14 年前

    查看 QueryDict 它用于保存get/post属性。

    明确地:

    querydict是一个类似于字典的类,可以定制来处理 同一个键有多个值 . 这是必要的,因为一些html表单元素,特别是 <select multiple="multiple"> ,为同一个键传递多个值。

    你可能想用 QueryDict.lists() :

    q = QueryDict('a=1&a=2&a=3')
    q.lists()
    [(u'a', [u'1', u'2', u'3'])]
    
        2
  •  1
  •   Tom    14 年前

    它返回列表中的多个值。在后端,您可以检查变量是否是列表,然后相应地处理这些情况。如果像现在这样将一个键强制为一个字符串,那么似乎有一些逻辑可以返回给它的最后一个值。