【问题标题】:jQuery to Make Ajax Request with DjangojQuery 使用 Django 发出 Ajax 请求
【发布时间】:2013-05-07 15:05:59
【问题描述】:

我正在尝试使用 jQuery 和 Django 与服务器交互,但我在我的 Chrome 控制台中收到了这个:

POST http://127.0.0.1:8000/rate/ 500 (INTERNAL SERVER ERROR) jquery.min.js:6
x.support.cors.e.crossDomain.send jquery.min.js:6
x.extend.ajax jquery.min.js:6
x.(anonymous function) jquery.min.js:6
(anonymous function) jquery.js:14
x.event.dispatch jquery.min.js:5
y.handle

这来自我的终端:

rating = request.POST.get['rating']
TypeError: 'instancemethod' object is not subscriptable

模板:

{% extends "base.html" %}
{% block content %}

    <form action="#" id="rate-form">
        {% csrf_token %}
        <input type="radio" name="rating" value="like">Like<br>
        <input type="radio" name="rating" value="dislike">Dislike
        <input type="submit" value="Rate">
    </form>

{% endblock %}

jQuery:

$(document).ready(function(){
    $('#rate-form').submit(function(e){
        $.post( '/rate/', $(this).serialize(), function() {
            alert('Submitted'); 
        }); 
        e.preventDefault();
    });
});

观看次数:

def test(request):
    rating = request.POST.get['rating']
    html = "Your rating is %s" % rating
    return HttpResponse(html)

我的“/rate/”网址指向测试视图。

【问题讨论】:

    标签: ajax django jquery django-forms


    【解决方案1】:

    这与 Ajax 或 jQuery 无关,这是 Python 错误。 get 是一种方法:你要么做 request.POST['rating'] 要么 request.POST.get('rating')

    【讨论】:

    • 谢谢。在我看来,我仍然没有从表单中获取我的数据,但我现在也没有收到任何错误。有什么想法吗?
    • 并非如此。您认为视图中rating 的值是多少?
    • 所以我做了一些测试,我有表单的页面被加载到用户正在查看的页面的一部分中,而不更新整个页面。当我将表单放在主模板上时,它可以正常工作,但是我无法访问诸如隐藏在表单中的帖子 ID 之类的东西。想法?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 2016-11-25
    相关资源
    最近更新 更多