问题:Field 'id' expected a number but got ”“

问题遇到的现象和发生背景

在Django+mysql中,出现Field 'id' expected a number but got ''.

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
views.py
def editb(request,a_id):
    s = models.Article.objects.filter(id=a_id).first()
    return render(request, "edit.html", {"post_lists": s})
#实现修改的视图函数
def do_edit(request):
    a_id = request.POST.get("id")
    a_ti = request.POST.get("title")
    a_cate = request.POST.get("category")
    a_data = request.POST.get("datatimefield")
    a_text = request.POST.get("textfield")
    models.Article.objects.filter(id=a_id).update(title=a_ti,category=a_cate,datatimefield=a_data,textfield=a_text)
    # stu = models.Stu.objects.raw("select * from stu")
    stu = models.Article.objects.all()
    return render(request,"detail.html",{'post_lists':stu})

** edit.html**

<body>
<section class="services-section"><a name="services">a>
    <div class="wrapper">
        <h4>{{ request.session.username }}'s Blogh4>
        <p class="subtitle">Django开发实战p>
        <p class="subtitle">
            <a href="#">Add Articlea>
        p>
        <p class="subtitle">
            <a href="#">Homea>
        p>
        <p class="subtitle">
            <a href="#">退出登录a>
        p>
    div>
section>
    <form action="/do_edit/" method="post">
        <input type="hidden" name="id" value="{{ article.id }}">
        <label>title:label> <input type="text" name="title" value="{{ article.title }}">
        <label>category:label> <input type="text" name="category" value="{{ article.category }}">
        <label>datatimefiled:label> <input type="text" name="datatimefield" value="{{ article.datatimefield }}">
        <label>textfiled:label> <textarea name="textfield" value="{{ article.textfield }}">textarea>
        <input type="submit" value="EDIT" class="button-1">
    form>

<div class="footer">

div>

body>
html>


detail.html
<section class="features-section">
        <div class="wrapper">
            <ul class="feature-squares">

                <li>
                    <div class="image">
                        <img src="../static/images/icon-eye.png" alt="feature icon">
                    div>
                    {% for post_obj in post_lists %}
                    <div class="text">
                        <h5>{{ post_obj.title}}h5>
                        <h6>{{ post_obj.category }}h6>
                        <h6>{{ post_obj.datatimefield }}h6>
                        <h6>{{ post_obj.textfield}}h6>
                    div>
                        li>
                <div id="clear">div>
            ul>
            <div class="edit_delete">
                <a href="{% url 'editb' post_obj.id %}">修改a>
                <a href="#">删除a>
            div>
            {% endfor %}
        div>
    section>
    div>

  path('det/',views.det,name="det"),
    re_path('edti(?P\d+)/',views.editb,name='editb'),
    path('do_edit/',views.do_edit),

运行结果及详细报错内容

出现Field 'id' expected a number but got ''.以及不是打开一条出现MySQL的一条记录

img


错误:

img

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

想要问问两种情况的解答!

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

在Django中,这种错误一般是由于你在使用某些数据库操作时,传入的参数类型不正确导致的。例如,如果你在调用Django的Model的save方法时,传入的参数是字符串类型,而不是数字类型,那么就会出现这种错误。

为了解决这个问题,你可以检查你传入的参数是否为正确的类型,如果不是,可以使用相应的函数进行转换,例如使用int()函数将字符串转换为数字类型。

例如,如果你在调用save方法时传入的参数是字符串类型,你可以使用以下代码来解决这个问题:

model_obj.save(update_fields=['field_name'], id=int(id_str))

在这里,我们使用了int()函数将id_str转换为数字类型,然后再传入save方法中。

希望这些内容对你有帮助!有用的话可以给博主点解决问题啦!