它显示,字段“id”需要一个数字,但得到的是“”

问题描述 投票:0回答:3

当我提交时显示此错误。

views.py:

class userINFOupdate(View):
    def get(self,request):  
        userid = request.GET.get("user_up_id")
        username = request.GET.get('user_up_username')
        email = request.GET.get('user_up_email')
        phone = request.GET.get('user_up_phoneNumber') 
        address = request.GET.get('user_up_address')

        obj = AJAXCRUD.objects.get(id=userid)
        print(userid)

模板:

<input type="text" hidden name="user_up_id" id="user_hid_id" class="user_hidden_id"> 

urls.py:

path('userINFOupdate/', views.userINFOupdate.as_view(), name="userINFOupdate")
django
3个回答
0
投票

您接受 user_up_id 作为字符串。您必须首先在views.py中将变量类型转换为int。

userid = int(request.GET.get("user_up_id"))

0
投票

我通过执行以下操作修复了此错误:

  1. 删除了除 0001_initial.py 之外的所有迁移文件
  2. 使用 => python manage.py makemigrations 创建了一个新的迁移
  3. 将新迁移提交到 db => python manage.py migrate。

在我的例子中,错误的存在是因为应用程序正在运行旧的迁移,从而导致了此错误。 我希望它也适合你🤗


0
投票

答案是

obj = AJAXCRUD.objects.get(id=int(userid))

© www.soinside.com 2019 - 2024. All rights reserved.