【问题标题】:Django Postgres objects.create ValidationErrorDjango Postgres objects.create ValidationError
【发布时间】:2017-05-10 12:11:42
【问题描述】:

如何在不丢失数据的情况下将 Django 的 id 与 Postgres 同步?

不知何故,我让 Django 进入了一种无法再创建对象的奇怪状态。调用:

Chapter.objects.create(title = 'hello')

抛出错误:

Traceback(最近一次调用最后一次):

File "/usr/local/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
psycopg2.IntegrityError: duplicate key value violates unique constraint "genesis_chapter_pkey"
DETAIL:  Key (id)=(2) already exists.

title 不是唯一字段。这怎么可能?我怀疑 Django 已经与 Postgres 不同步并试图分配一个使用过的 id,但我没有做任何比调用 objects.create 更特别的事情。我只使用了 Django ORM。这怎么可能让 Django 不同步呢?

【问题讨论】:

标签: python django postgresql


【解决方案1】:

我想问题在于您在 postgresql 中创建 id 时如何定义它。您应该将 id 元素类型定义为 serial 以实现自动递增。

【讨论】:

    【解决方案2】:

    试试

    new_chapter = Chapter(title='hello')

    new_chapter.save()

    【讨论】:

    • 你能做一个'描述''\d chapter_chapters'吗?并在这里发布。你也可以尝试插入chapter_chapters(标题)值('hello');
    猜你喜欢
    • 2019-11-11
    • 1970-01-01
    • 2014-07-18
    • 2014-04-25
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-10
    相关资源
    最近更新 更多