Изглежда, че django dumpdata изхвърли приспособления в грешен ред. Погледнете в json файла, за да проверите дали product
с id: 1
присъства там. Ако, както предполагам, това е вярно, използвайте някои по-сложни инструменти за изхвърляне на данни, например django-fixture-magic
Като алтернатива може да искате да изтриете всички ограничения за интегритет с помощта на db машина точно преди качване и да опитате да ги създадете отново веднага след това, но това е донякъде рисковано, ако има някои грешки в интегритета.
За PostgreSQL се консултирайте с тази тема за да знаете как да получите дефиниции на вашите таблици. В MySQL това би било нещо като следното:
$ mysqldump --no-data -utest django auth_user_user_permissions
CREATE TABLE `auth_user_user_permissions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`permission_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `user_id` (`user_id`,`permission_id`),
KEY `auth_user_user_permissions_403f60f` (`user_id`),
KEY `auth_user_user_permissions_1e014c8f` (`permission_id`),
CONSTRAINT `user_id_refs_id_dfbab7d` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`),
CONSTRAINT `permission_id_refs_id_67e79cb` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Следната част трябва да работи за oracle, postgre и mysql
> alter table `auth_user_user_permissions` drop foreign key `user_id_refs_id_dfbab7d`;
Query OK, 0 rows affected (0.97 sec)
Records: 0 Duplicates: 0 Warnings: 0
> alter table `auth_user_user_permissions` add CONSTRAINT `user_id_refs_id_dfbab7d` FOREIGN KEY (`user_id`) references `auth_user` (`id`);
Query OK, 0 rows affected (0.95 sec)
Records: 0 Duplicates: 0 Warnings: 0