Как гидратировать обезвоженные данные и импортировать их в БД

Привет всем, я пытался экспортировать данные из django postgresql с помощью django-import-export и столкнулся с проблемой преобразования внешнего ключа id в name/title, которая была решена с помощью нижеприведенного метода и данные были успешно извлечены.

class MemberResource(resources.ModelResource):
    Brand=Field()
    class Meta:
        model = model
        fields=('id','title','Model_code','Chipset','chipset_description','image','Brand','Cat')
        export_order=('id','title','Model_code','Chipset','chipset_description','image','Brand','Cat')
    def dehydrate_Brand(self, obj):
        return str(obj.Brand.title)


class modelAdmin(ImportExportModelAdmin):
    resource_class = MemberResource
    list_display=['id','title','Model_code','Chipset','chipset_description','Brand','categories']
    search_fields = ['title','Model_code','Chipset',]
    fields=('title','Model_code','Chipset','chipset_description','image','Brand','Cat')
admin.site.register(model,modelAdmin)

Теперь я хочу импортировать/загрузить данные обратно в базу данных, используя тот же экспортированный xls без вставки ID внешнего ключа и вставки имени внешнего ключа. мне нужно руководство по гидратации данных обратно. Я также пробовал использовать приведенный ниже метод гидратации

def hydrate_Brand(self, obj):
        return str(obj.Brand.title)

def hydrate не показывает никакой ошибки, но данные также не импортируются в базу данных.

проблема была в том, что обезвоживание внешнего ключа дает только данные только для чтения, которые были предназначены только для экспорта, для импорта нам нужно использовать виджеты, которые разрешат внешние ключи и импортируют данные в базу данных.

Ссылка на Документацию

class MemberResource(resources.ModelResource):
Brand = fields.Field(
column_name='Brand',
attribute='Brand',
widget=ForeignKeyWidget(brand, 'title'))
class Meta:
model = model
fields=('id','title','Model_code','Chipset','chipset_description','image','Brand','Cat')
Вернуться на верх