我试图使用我的视图类从ajax请求中获取数据。 BUt打印Query dict,我得到一个空字典..我已经添加了与csrf相关的代码。
ajax请求,
$.ajax({
type: "POST",
url: "/categories/",
contentType: 'application/json',
data: JSON.stringify({"category_id": id, "category_name": name}),
success: function(data) {
$('#category-modal').modal('toggle');
}
urls.py
urlpatterns = [
url(r'^categories/', CategoryView.as_view(), name='Categories'),
]
views.py
class CategoryView(TemplateView):
template_name = 'categories.html'
def get(self, request, *args, **kwargs):
items = CategoryQuery.get_all_categories()
context = {
'items': items,
}
return self.render_to_response(context)
def post(self, request, *args, **kwargs):
query_dict = request.POST
converted_dict = query_dict.dict()
print converted_dict
答案 0 :(得分:4)
request.POST
用于表单编码数据。你有JSON;您应该访问request.body
并通过json.loads
对其进行反序列化。
答案 1 :(得分:0)
简单地替换
data: JSON.stringify({"category_id": id, "category_name": name}),
与
data: {"category_id": id, "category_name": name}