Given that you say you're working with PG Navicat, I assume you're
using Postgresql as your database. Postgresql has a concept of
sequences, which it uses to generate IDs for auto-generated fields
like Django's AutoField.

I think what you've done, by copying data in directly, is created
records with the specific IDs that existed in your existing data.
Since Postgresql didn't have to generate these IDs, it probably never
incremented its sequence. So when you add new records, Django doesn't
provide an ID, so Postgresql gets a new one from its sequence, then
bombs out because that new ID already exists.

Check out the Postgresql docs for ALTER SEQUENCE[1], which you can use
to reset the value to something like the highest ID in your data set
(or the highest plus one, I'm not sure). This way, when a new object
is created, the generated ID won't already be in use. Keep in mind
that you'll have to do this for every sequence that your database uses
to generate IDs, and each one will need to be set to a different
value, depending on what IDs are in the related table.

Hope that helps.

-Gul

[1] http://www.postgresql.org/docs/current/interactive/sql-altersequence.html

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to