Après de nombreux débogages, j'ai enfin trouvé la solution. La raison est que j'essayais d'insérer deux autres categories
avec id spécifié s, ce qui empêcherait postgresql d'augmenter la last_value
de la sequence
relative . Juste comme suit :
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"
)
La façon de résoudre ce problème est simple, soit changer le last_value
manuellement dans django
, ou simplement ne pas spécifier l'identifiant, c'est-à-dire supprimer les lignes suivantes :
....
pk=settings.ST_TOPIC_PRIVATE_CATEGORY_PK,
....
pk=settings.ST_UNCATEGORIZED_CATEGORY_PK,
....
Je suppose que si vous laissez Django entreprendre la tâche de gérer id
, ce n'est peut-être pas une bonne idée de spécifier l'id
vous-même lors de l'insertion de nouvelles données.