Django:保存后ID为空

Dob*_*Dog 1 python django django-forms

我在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']
Run Code Online (Sandbox Code Playgroud)

==========================

在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()
Run Code Online (Sandbox Code Playgroud)

但django失败了这个错误:

       ValueError: save() prohibited to prevent data loss due to unsaved related object 'boat'.
Run Code Online (Sandbox Code Playgroud)

我打印ID,但它是空的.有人能帮我吗.

Dan*_*man 7

您已重写主键字段id,而不是AutoField.不要那样做.

通常你根本不会定义它,让Django自动完成它.如果你真的确定标准整数字段不够大,可以使用BigAutoField.但我怀疑你的数据库中有超过2147483647条船只.