Po wielu debugowaniach w końcu znalazłem rozwiązanie. Powodem jest to, że próbowałem wstawić dwie inne categories
o określonym identyfikatorze s, co spowodowałoby, że postgresql przestałby zwiększać last_value
względnej sequence
. Tak jak poniżej:
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"
)
Sposób na naprawienie tego jest prosty, albo zmień last_value
ręcznie w django
, lub po prostu nie podawaj id, tj. usuń następujące wiersze:
....
pk=settings.ST_TOPIC_PRIVATE_CATEGORY_PK,
....
pk=settings.ST_UNCATEGORIZED_CATEGORY_PK,
....
Myślę, że jeśli pozwolisz django podjąć się zadania zarządzania id
, może nie być dobrym pomysłem określenie id
siebie podczas wstawiania nowych danych.