Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django Rest请求。数据对象为空_Python_Ajax_Django_Django Rest Framework - Fatal编程技术网

Python Django Rest请求。数据对象为空

Python Django Rest请求。数据对象为空,python,ajax,django,django-rest-framework,Python,Ajax,Django,Django Rest Framework,我无法从ajax请求中获取数据。我可以通过Djangos的request.GET(以及其他POST、DELETE等标题)访问数据,但不能通过REST request.data(或request.body)访问数据,后者返回一个空的dict。 我的ajax调用: function getMeal(event) { var tmp = event._id.split("_") var database = tmp[0] var mealId = tmp[1] $.

我无法从ajax请求中获取数据。我可以通过Djangos的request.GET(以及其他POST、DELETE等标题)访问数据,但不能通过REST request.data(或request.body)访问数据,后者返回一个空的dict。 我的ajax调用:

function getMeal(event)
{
  var tmp       = event._id.split("_")
  var database  = tmp[0]
  var mealId    = tmp[1]
  $.ajax(
  {
    type: "GET",
      url: "{% url 'updateEatenMealAjax' %}",
      data:
      {
          'database': database,
          'mealId'  : mealId,

      },
      success: function(data, textStatus, jqXHR)
      {
        $('#update_EatenMeal_FormBody').html(data);
      },
      dataType : 'html',
      async: 'false',
      contentType: 'application/json'

    });
}
我的django观点:

@login_required
@api_view(["PUT", "GET", "DELETE"])
@csrf_protect
@ensure_csrf_cookie
def updateEatenMealAjax(request):

    args = {}
    eaten_object = None
    # WHICH DATABASE DOES THIS FOOD ITEM BELONG TO
    database = request.data.get('database')
    mealId  = request.data.get('mealId')    

来自Django REST框架:

request.data返回请求正文的解析内容。这类似于标准的
request.POST
request.FILES
属性

request.query\u params
request.GET
的一个更正确的同义词。 为了让代码更清晰,我们建议使用
request.query_params
而不是Django的标准
request.GET
。这样做将有助于使您的代码库更加正确和明显——任何HTTP方法类型都可能包含查询参数,而不仅仅是GET请求


只要您通过将数据传递到视图中,无论您使用的动词是什么(无论是
GET
POST
还是其他),它们都将在
请求中可用。query_params
而不是
请求。data

感谢您的回答和其他解释。这个问题很快就解决了。再次感谢。