温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Django报错ValueError: invalid literal for int() with base 10的原因及解决方法

发布时间:2021-08-30 11:42:31 来源:亿速云 阅读:662 作者:chen 栏目:编程语言

这篇文章主要讲解了“Django报错ValueError: invalid literal for int() with base 10的原因及解决方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Django报错ValueError: invalid literal for int() with base 10的原因及解决方法”吧!

DJango报错

ERROR:default:Traceback (most recent call last):
  File "/data/venv4archer/lib/python3.6/site-packages/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/data/venv4archer/lib/python3.6/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
    return view_func(*args, **kwargs)
  File "/data/opt/archer_product_20181019/sql/views.py", line 1123, in modifydatasourceapply
    applyusername=datasourceapply.objects.filter(id=int(Datasourceapplyid)).values('user_name')
ValueError: invalid literal for int() with base 10: ''

报错原因:

post传送过来的变量为空。

    Datasourceapplyid = request.POST.get("datasourceid", "")
    print ('Datasourceapplyid', Datasourceapplyid)
    
ValueError: invalid literal for int() with base 10: ''
[26/Oct/2018 18:39:10] "POST /modifydatasourceapply/ HTTP/1.1" 500 12987
Datasourceapplyid

解决方法:

修复post变量传入。

报错时,var datasourceid = $("#datasource_id").val();写成了var datasourceid = $("#datasourceid").val();,进而导致传输的变量为空值。

  <form method="post" role="form">
    {% csrf_token %}
    <div class="form-group">
      <input type="hidden" class="form-control" id="datasource_id" name="datasourceid"  value={{ datasourceDetail.id }} >
    </div>
    
        $("#btn-submitsql").click(function () {
                var datasourceid = $("#datasource_id").val();
                var app_name = $("#app_name").val();
                var env = $("#env").val();
                var db_name = $("#db_name").val();
                var db_privs = $("#db_privs").val();
                var username = $("#username").val();
                var port = $("#port").val();
                var password = $("#password").val();
                var ip_addr = $("#ip_addr").val();
                $.ajax({
                    type: "post",
                    async: false,
                    url: "/modifydatasourceapply/",
                    dataType: "json",
                    data: {
                        datasourceid: datasourceid,
                        app_name: app_name,
                        env: env,
                        db_name: db_name,
                        db_privs: db_privs,
                        username: username,
                        port: port,
                        password: password,
                        ip_addr: ip_addr
                    },

感谢各位的阅读,以上就是“Django报错ValueError: invalid literal for int() with base 10的原因及解决方法”的内容了,经过本文的学习后,相信大家对Django报错ValueError: invalid literal for int() with base 10的原因及解决方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI