【问题标题】:Django: IndexError: tuple index out of range on sending a JQuery POST requestDjango:IndexError:发送 JQuery POST 请求时的元组索引超出范围
【发布时间】:2017-10-15 15:19:41
【问题描述】:

我有一个用例,其中我使用 POST 请求将一些数据发送到一个 URL,该 URL 映射到一个视图,然后返回一个成功状态。

jQuery

$( "#submit-id-add-update-user-button" ).click(function() 
    {   
        first_name = $('input[name="first_name"]').val();
        last_name = $('input[name="last_name"]').val();
        age = $('input[name="age"]').val();
        dob = $('input[name="dob"]').val();
        place = $('input[name="location"]').val();
        mobile = $('input[name="mobile"]').val();
        email = $('input[name="email"]').val();
        user_id = $('input[name="user_id"]').val();
        new_user = (user_id == '') ? ('yes') : ('no');

        var url = base_url + '/add-update-user/';
        var data = {
            'email': email,
            'first_name': first_name,
            'last_name': last_name,
            'age': age,
            'dob': dob,
            'place': place,
            'mobile': mobile,
            'user_id': user_id,
            'new_user': new_user,
            'csrfmiddlewaretoken': csrftoken,
        };

        $.post( url, data)
          .done(function( data ) {
            console.log('this is done');
            window.location.href = "/";
        });

    }); 

urls.py

url(r'^add-update-user/', add_update_user, name="add_update_user")

views.py

def add_update_user(request):
    message = ''
    if(request.POST.get('new_user').encode('utf8') == 'yes'):
        usr = New_Users(first_name=request.POST.get('first_name'),
                last_name=request.POST.get('last_name'),age=request.POST.get('age'),dob=12345,
                location=request.POST.get('place'),mobile=request.POST.get('mobile'),
                email=request.POST.get('email'))
        usr.save()
        message = 'new user added'
    else:
        message = 'existing user updated'

    return HttpResponse(message)

但是,这是我遇到的错误:

Traceback (most recent call last):
  File "/usr/lib/python2.7/logging/__init__.py", line 861, in emit
    msg = self.format(record)
  File "/usr/lib/python2.7/logging/__init__.py", line 734, in format
    return fmt.format(record)
  File "/home/manas/Python/Interviews/pricebaba_env/local/lib/python2.7/site-packages/django/utils/log.py", line 173, in format
    if args[1][0] == '2':
IndexError: tuple index out of range
Logged from file basehttp.py, line 85

我不确定这个错误是什么意思或为什么会出现。非常感谢您对此的帮助。

编辑:我更新了我的views.py 代码。该错误似乎是由我用于 New_Users 模型的插入查询引起的。

【问题讨论】:

    标签: jquery python django python-2.7


    【解决方案1】:

    您需要将字符串传递给 HttpResponse,而不是字典。

    【讨论】:

    • 当我改用return HttpResponse('success') 时,我仍然得到同样的错误。
    • 我已经编辑了我的views.py 文件。该错误似乎是由我使用的查询引起的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-28
    • 2021-03-02
    • 2018-11-16
    • 2016-04-04
    • 2020-06-08
    • 2017-07-12
    相关资源
    最近更新 更多