我在models.py中找到了这个模型:
class Boats(models.Model):
id = models.BigIntegerField(primary_key=True)
created = models.DateTimeField(default=timezone.now, blank=True)
name = models.CharField(max_length=30)
class Meta:
managed = True
db_table = 'boats'
ordering = ['name']
class Clients(models.Model):
id = models.BigIntegerField(primary_key=True)
created = models.DateTimeField(default=timezone.now, blank=True)
code = models.CharField(max_length=100)
class Meta:
managed = True
db_table = 'clients'
ordering = ['name']
==========================
在views.py中;我的功能是这样的:
f = NewBoatForm(request.POST)
if f.is_valid():
nBoat = f.save()
print 'ID:'+str(nBoat.id)
cBoat = ClientsBoats()
cBoat.client = client
cBoat.boat = nBoat
cBoat.save()
但是django失败了这个错误:
ValueError: save() prohibited to prevent data loss due to unsaved related object 'boat'.
我打印了ID,但它是空的。 someOne可以帮助我。
答案 0 :(得分:7)
您已将主键字段id
重写为AutoField以外的其他字段。不要那样做。
通常你根本不会定义它,让Django自动完成它。如果你真的确定标准整数字段不够大,可以使用BigAutoField。但我怀疑你的数据库中有超过2147483647条船。