我有一个模型叫做零食:
class Snack(models.Model):
snack = models.CharField(max_length=9)
当我做的时候
Snack.objects.get_or_create(snack="borsh")
我收到这个错误:
django.db.utils.IntegrityError: duplicate key value violates unique constraint "restaurants_snack_pkey"
DETAIL: Key (id)=(6) already exists.
如果我再做一次,它会告诉我同样的事情,除了 key (已经存在)将是 7 等等。
key 确实已经存在,我想知道如何让它选择下一个可用的 key ?
提前致谢。
热尼亚
最佳答案
你可能做了一些手动数据导入,即使没有,这不是 django 的问题,而是数据库自动递增序列的问题。 Django 有一个管理命令,可以生成 sql 命令来重置这些命令:
./manage.py sqlsequencereset myapp1 myapp2
如果您使用的是 PostgreSQL,您可以像这样将其通过管道传输:
./manage.py sqlsequencereset myapp1 myapp2 | psql
或者mysql
,如果你用的是MySQL,但我没试过。
关于django get_or_create 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24290019/