Django:我无法让 Django 自动创建自动字段
Posted
技术标签:
【中文标题】Django:我无法让 Django 自动创建自动字段【英文标题】:Django: I am unable to get Django to autocreate an autofield 【发布时间】:2022-01-06 00:09:00 【问题描述】:我从views.py
调用BORROWER.objects.create(ssn=Ssn, bname=Name, address=Address, phone=Phone)
在我的sqlite 数据库中创建一个条目。这是我的models.py文件,里面有相关的功能。
class BORROWER(models.Model):
card_id = models.AutoField(primary_key=True, max_length=7)
ssn = models.CharField(max_length=11)
bname = models.CharField(max_length=71)
address = models.CharField(max_length=79)
phone = models.CharField(max_length=15)
def __str__(self):
return str(self.card_id)
数据库条目已成功创建。但是,由于我没有为 card_id
字段指定值,因此该值保持为 (<django.db.models.fields.AutoField>,)
而不是实际的键。当我尝试为card_id
指定一个值时,它说明了一些关于意外参数的内容。我是否错误地调用了 create 函数?
编辑:原始代码中没有逗号,但我会尝试建议的编辑
【问题讨论】:
您在该行的末尾有一个尾随逗号,它将AutoField
包装在一个单例元组中。
对不起,原代码中没有逗号,我在没有逗号的情况下进行了测试,问题仍然存在。我会再试一次以确保。
【参考方案1】:
删除card_id
末尾的逗号,不要将max_length
与AutoFiled
一起使用..
class BORROWER(models.Model):
card_id = models.AutoField(primary_key=True)
ssn = models.CharField(max_length=11)
bname = models.CharField(max_length=71)
address = models.CharField(max_length=79)
phone = models.CharField(max_length=15)
def __str__(self):
return str(self.card_id)
【讨论】:
谢谢,删除 max_length 似乎已经解决了!以上是关于Django:我无法让 Django 自动创建自动字段的主要内容,如果未能解决你的问题,请参考以下文章