ValueError:无效的十进制整数文本

3 投票
2 回答
3446 浏览
提问于 2025-04-16 12:49

我在尝试把一些数据插入到Django模型时遇到了一个值错误。我的Python脚本是:

from task.employeeDetails.models import EmployeeDetails

def dumpdata():
    userName = "John"    
    designation = 'Software Engineer'
    employeeID = 2312
    contactNumber = 9495321257
    project = 'AOL'
    dateOfJoin = '2009-10-10'    
    EmployeeDetails(userName,designation,employeeID,contactNumber,project,dateOfJoin).save()     
dumpdata() 

我的models.py文件是:

class EmployeeDetails(models.Model):
    userName = models.CharField(max_length=200)
    designation = models.CharField(max_length=200)
    employeeID = models.IntegerField()
    contactNumber = models.CharField(max_length=200)
    project = models.CharField(max_length=200)
    dateOfJoin=models.TextField()

请帮我解决这个错误,因为我刚开始学习Python编程。错误信息是“ValueError: invalid literal for int() with base 10: 'John'”。

2 个回答

7

不要使用位置参数,应该用关键字来明确每个字段要填入什么数据。

EmployeeDetails(userName=userName, designation=designation) #etc

另外,如果你反正要调用 save() 方法的话,可以直接使用 EmployeeDetails.objects.create(...)

5

我不是Django方面的专家,但你可以试着把

EmployeeDetails(userName,designation,employeeID,contactNumber,project,dateOfJoin).save() 

替换成

EmployeeDetails(userName=userName,designation=designation,employeeID=employeeID,contactNumber=contactNumber,project=project,dateOfJoin=dateOfJoin).save() 

撰写回答