django QueryDict only returns the last value of a list

后端 未结 3 1587
鱼传尺愫
鱼传尺愫 2021-02-12 09:20

Using django 1.8, I\'m observing something strange. Here is my javascript:

function form_submit(){
  var form = $(\'#form1_id\');
  request = $.post($(this).attr         


        
相关标签:
3条回答
  • 2021-02-12 10:02

    From here

    This is a feature, not a bug. If you want a list of values for a key, use the following:

    values = request.POST.getlist('key')
    

    And this should help retrieving list items from request.POST in django/python

    0 讨论(0)
  • 2021-02-12 10:20

    The function below converts a QueryDict object to a python dictionary. It's a slight modification of Django's QueryDict.dict() method. But unlike that method, it keeps lists that have two or more items as lists.

    def querydict_to_dict(query_dict):
        data = {}
        for key in query_dict.keys():
            v = query_dict.getlist(key)
            if len(v) == 1:
                v = v[0]
            data[key] = v
        return data
    

    Usage:

    data = querydict_to_dict(request.POST)
    
    # Or
    
    data = querydict_to_dict(request.GET)
    
    0 讨论(0)
  • 2021-02-12 10:20

    You can use getlist method

    data = request.POST.getlist('form_4606-parentspass_id','')
    
    0 讨论(0)
提交回复
热议问题