无法通过管理员创建新条目

时间:2018-06-29 04:52:48

标签: python django python-3.x postgresql

我有一个名为Company的模型。如您所见,该模型非常简单。在项目中,我使用postgres数据库。

当我尝试由Django管理员创建新条目时遇到一个奇怪的问题。

首先,我通过终端的sql请求在数据库中添加5个条目。它们的ID为1到5。在数据库客户端中,我看到了它们。现在,当我尝试通过管理员添加新公司时,会引发下一个错误:

django.db.utils.IntegrityError: duplicate key value violates unique constraint "company_pkey"
DETAIL:  Key (id)=(5) already exists.

有人可以说如何解决此问题吗?

models.py:

class Company(models.Model):
    name = models.CharField()

admin.py:

class CompanyAdmin(admin.ModelAdmin):
    search_fields = ('name',)


admin.site.register(Company, CompanyAdmin)

1 个答案:

答案 0 :(得分:1)

您正在看到此问题,因为PostgreSQL使用序列填充id字段。序列不知何故不同步,也许您手动分配了一个ID。

您必须重置Company模型中用于主键的顺序。 sqlsequencereset管理命令将打印出必要的命令。

$ python manage.py sqlsequencereset my_app

用包含my_app模型的应用程序名称替换Company。您应该能够将其输出通过管道传递到dbshell管理命令。

$ python manage.py sqlsequencereset my_app| python manage.py dbshell