title: Getting None values for POST request (via the Axios library) sent to Python/Django
body: <p>I am building a web app with Django/Python and trying to send data to a controller via a POST request using the Axios library (within Vue.js code).</p>
  
  <p>The POST QueryDict seems to be empty and I can't see why that is happening:</p>
  
  <pre><code>changeCountry: function(e, id){
    console.log("Let's change the country")
    console.log(e.target.value) // is printing correctly
    console.log(id) // also printing correctly
  
    axios({
      method: 'post',
      url: '/template/country',
      data: {
        id: id,
        country: e.target.value
      },
      headers: {
        'X-CSRFToken': "{{csrf_token}}"
        }
      })
      .then(function (response) {
        alert(response.data); // this is returning what I expect
      })
      .catch(function (error) {
        console.log(error);
      })
    },
  </code></pre>
  
  <p>The Python method looks like this:</p>
  
  <pre><code>def update_template_country(request):
  
    pprint(request.POST) # prints an empty QueryDict
  
    id = request.POST.get('id')
    country = request.POST.get('country')
  
    print(id, country) #prints None None
  
    return HttpResponse("The country is changed") # this is being returned back to the client
  </code></pre>
  
  <p>The <code>console.log</code> messages at the top print what I expect and since there is no error I am assuming the CSRF header token is fine. Have I missed something obvious or misunderstood how this is working?</p>
  
  <p>EDIT: looking at the Chrome Network tab, it seems the data is being 'POSTed' correctly:</p>
  
  <p>It shows this:</p>
  
  <pre><code>{"id":"593ff2270098e6e8d3292b60","country":"US"} 
  </code></pre>
  
  <p>and that's what I expect, so I suspect the issue is with Django. But I can't see what that might be.</p>