How to implement foreign key relationships with django-import-export

689 Views Asked by At

I've made a django app in which I want to import data from .xlsx files to models with django-import-export module.

My models.py is:

class File(models.Model):
    name = models.CharField(max_length=50)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.name


class Data(models.Model):
    file = models.ForeignKey(File,
                             on_delete=models.CASCADE, null=False)
    url = models.URLField()

I want that when I import .xlsx file its contents go into Data model and its File name into File model with foreign key relationship between them.

My admin.py file is:

from import_export.admin import ImportExportModelAdmin
from import_export import resources, fields
from import_export.widgets import ForeignKeyWidget
from django.contrib import admin
from .models import File, Data

admin.site.register(File)

class DataResource(resources.ModelResource):
    file = fields.Field(
        widget=ForeignKeyWidget(File, 'name'))

    class Meta:
        model = Data
        exclude = ('file',)


@admin.register(Data)
class DataAdmin(ImportExportModelAdmin):
    pass

I tried everything in the module's documentation. But I can't solve the issue I'm facing

0

There are 0 best solutions below