Python 无法在使用django时增加对象的最新值
我想增加表中最后一个id的值,以便在下一行中输入不同的值。我在python项目中使用Oracle11g数据库。请看我的示例代码Python 无法在使用django时增加对象的最新值,python,django,oracle,increment,Python,Django,Oracle,Increment,我想增加表中最后一个id的值,以便在下一行中输入不同的值。我在python项目中使用Oracle11g数据库。请看我的示例代码 custID = Customer.objects.lates('CUSTOMER_ID') custID = int(custID) + 1 #received error custName = "Peter" Customer.objects.create('CUSTOMER_ID'=str(custID), 'CUSTOMER_NAME'=custName) #
custID = Customer.objects.lates('CUSTOMER_ID')
custID = int(custID) + 1 #received error
custName = "Peter"
Customer.objects.create('CUSTOMER_ID'=str(custID), 'CUSTOMER_NAME'=custName) #this line is ok
我得到了这个错误:TypeError:int()参数必须是一个字符串,一个字节,比如对象或数字,而不是“Customer”
我尝试在线搜索,并更改了我的代码,如
Customer.objects.create('CUSTOMER_NAME'=custName)
但没有起作用,因为我的it在我的数据库和python模型上不是自动递增的
我也试过这个
custID = sum(int(custID), 1)
对不起,我刚到django。好吧,如果我没听错的话,这是你的问题:
custID = Customer.objects.latest('CUSTOMER_ID')
此语句将返回一个Customer
对象,因此您需要使用
custId = custID.CUSTOMER_ID + 1
好吧,如果我理解正确的话,这就是你的问题:
custID = Customer.objects.latest('CUSTOMER_ID')
此语句将返回一个Customer
对象,因此您需要使用
custId = custID.CUSTOMER_ID + 1
Customer.objects.latest('Customer\u ID')
返回一个对象,而不是ID。您需要的是:
custID = Customer.objects.latest('CUSTOMER_ID').id
但是,创建新客户时不需要指定id;通常Django会自己获取id
Customer.objects.latest('Customer\u ID')
返回一个对象,而不是ID。您需要的是:
custID = Customer.objects.latest('CUSTOMER_ID').id
但是,创建新客户时不需要指定id;通常Django会自己获取id 您是否可以尝试使用
type(custID)
打印返回的custID的类型?它显示您收到了错误。不能显式地将类类型转换为int。您需要使用custID.id
获取您的id,然后将其递增。请看下面的答案。一个旁注,你应该考虑使用<代码>()表达式来避免竞争条件。你可以尝试使用<代码>类型(CUCITD)打印返回的CUTIDD的类型吗?它显示了<代码> <代码>你得到了错误。不能显式地将类类型转换为int。您需要使用custID.id
获取您的id,然后将其递增。请看下面的答案。一个旁注,你应该考虑使用<代码> f-(表达式)< /代码>以避免竞争条件。