ValueError: недопустимый литерал для int () с основанием 10: - PullRequest
3 голосов
/ 02 марта 2011

Я получаю это значение ошибки, когда я пытаюсь вставить некоторые данные в модель 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: недопустимый литерал для int () с основанием 10:« Джон »

Ответы [ 2 ]

7 голосов
/ 02 марта 2011

Не используйте позиционные аргументы, используйте ключевые слова, чтобы указать, какое поле заполняется какими данными.

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

Кроме того, если вы собираетесь в любом случае вызвать save(), вы можете использовать EmployeeDetails.objects.create(...)

5 голосов
/ 02 марта 2011

Я не эксперт по Django, но попробуйте заменить

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

на

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