Po spoustě ladění jsem konečně našel řešení. Důvodem je, že jsem se snažil vložit dvě další categories
se zadaným id s, což by způsobilo, že postgresql přestal zvyšovat last_value
relativní sequence
. Přesně takto:
0002_auto_20150728_0442.py
if not Category.objects.filter(pk=settings.ST_TOPIC_PRIVATE_CATEGORY_PK).exists():
Category.objects.create(
pk=settings.ST_TOPIC_PRIVATE_CATEGORY_PK,
title="Private",
slug="private",
is_private=True
)
if not Category.objects.filter(pk=settings.ST_UNCATEGORIZED_CATEGORY_PK).exists():
Category.objects.create(
pk=settings.ST_UNCATEGORIZED_CATEGORY_PK,
title="Uncategorized",
slug="uncategorized"
)
Způsob, jak to opravit, je jednoduchý, buď změňte last_value
ručně v django
, nebo prostě neuvádějte id, tj. odstraňte následující řádky:
....
pk=settings.ST_TOPIC_PRIVATE_CATEGORY_PK,
....
pk=settings.ST_UNCATEGORIZED_CATEGORY_PK,
....
Myslím, že pokud necháte django převzít úlohu správy id
, nemusí být dobrý nápad zadat id
při vkládání nových dat.