django импорт-экспорт не работает с mptt - PullRequest
0 голосов
/ 31 января 2020

У меня возникла проблема с попыткой заставить импорт-экспорт работать на моделях mptt. Это мой код:

models.py

from django.db import models
from mptt.models import MPTTModel, TreeForeignKey

class MyModel(MPTTModel):
    name = models.CharField(max_length=255)
    parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children')
    active = models.BooleanField(default=True,null=False,blank=False)
    sort_order = models.PositiveIntegerField(default=0,null=True,blank=True)

    class MPTTMeta:
        order_insertion_by = ['name']

    class Meta:
        ordering = ['sort_order']

    def __str__(self):
        return self.name

admin.py

from django.contrib import admin
from mptt.admin import MPTTModelAdmin, DraggableMPTTAdmin
from .models import MyModel
from import_export import resources
from import_export.admin import ImportExportModelAdmin, ImportExportMixin

class MyModelResource(resources.ModelResource):

    class Meta:
        model = MyModel
        exclude = ('lft','rght','tree_id','level')

@admin.register(MyModel)
class MyModelAdmin(ImportExportMixin, DraggableMPTTAdmin):
    resource_class = MyModelResource
    list_display = ('tree_actions','indented_title','active','sort_order')
    list_editable = ('active','sort_order')
    list_display_links = ('indented_title',)

Когда я экспортирую это помещает поле имени в родительский столбец. При повторном импорте происходит сбой в родительском поле:

"MyModel.parent" must be a "MyModel" instance.

Любая помощь приветствуется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...