-
-
Notifications
You must be signed in to change notification settings - Fork 302
Description
My project settings (my_django_project):
...
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polymorphic',
'my_app',
)
...
My application models (my_app):
from __future__ import unicode_literals
from django.contrib import admin
from django.db import models
from polymorphic import PolymorphicModel
from polymorphic.admin import PolymorphicParentModelAdmin, PolymorphicChildModelAdmin
class Project(PolymorphicModel):
topic = models.CharField(max_length=30)
class ArtProject(Project):
artist = models.CharField(max_length=30)
class ResearchProject(Project):
supervisor = models.CharField(max_length=30)
class ArtProjectChildAdmin(PolymorphicChildModelAdmin):
base_model = ArtProject
base_form = ()
base_fieldsets = ()
class ResearchProjectAdmin(ArtProjectChildAdmin):
base_model = ResearchProject
class ProjectParentAdmin(PolymorphicParentModelAdmin):
base_model = Project
child_models = (
(ArtProject, ArtProjectChildAdmin),
(ResearchProject, ArtProjectChildAdmin),
)
# Only the parent needs to be registered:
admin.site.register(Project, ProjectParentAdmin)The issue:
In the django admin, if i created two row of an ArtProject and ResearchProject.
Then, i deleted everything, and try to restore the database with "dumpdata/loaddata" management command. The json file is clear missing some field to refer to the parent object. Like topic field from Project.
- Manage.py dumpdata my_app.project --indent = 4 --natural > data.json
[
{
"fields": {
"artist": "guerson"
},
"model": "my_app.artproject",
"pk": 1
},
{
"fields": {
"supervisor": "max"
},
"model": "my_app.researchproject",
"pk": 2
}
]
Also, the json file can not be restored because of a missing pointer project_ptr_id, Which breaks the restoration later with the command loaddata
- Manage.py loaddata data.json
referenced_table_name, referenced_column_name)) django.db.utils.IntegrityError: Problem installing fixtures: The row in table 'my_app_artproject' with primary key '1' has an invalid foreign key: my_app_artproject.project_ptr_id contains a value '1' that does not have a corresponding value in my_app_project.id.
My environment :
$ pip freeze
- Django==1.8.6
- django-polymorphic==0.7.2
- mysql-python==1.2.3
- virtualenv==13.1.2