Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django-import-export export also related field of a model

In my project I have a model like this: models.py

class e_cart(models.Model):
    e_uid = models.ForeignKey(User, on_delete=models.CASCADE, )
    e_prodid = models.ForeignKey(p_prodotti, on_delete=models.CASCADE, verbose_name="Product")
    e_qta = models.IntegerField(default=0, verbose_name="Quantita")
    e_datain = models.DateTimeField(auto_now=True, verbose_name="Insert Data")
    ....

I use django-import-export for export my data in admin panel and in admin.py I do:

from import_export.admin import ImportExportModelAdmin

class OrderAdmin(ImportExportModelAdmin):

    search_fields = ('onum',)
    list_display = ('onum', 'date', 'paid', 'onotes', 'totord', 'obank')
    ordering = ('-date', 'onum')

Now for example the e_uid field is exported as just an id (1,2 ecc) but I would export the select_related() fields for example e_uid.firstname, e_uid.lastname ecc

How can I modify my code for export also related field of my model?

so many thanks in advance

like image 380
Manuel Santi Avatar asked Oct 20 '25 03:10

Manuel Santi


1 Answers

When you declare your resource, it is possible to follow Model relationships (docs)

Declare a resource (with fields) (taken from the example app):

class BookResource(ModelResource):

    class Meta:
        model = Book
        fields = ('author__name',)

Reference the resource in your Admin class:

class BookAdmin(ImportExportMixin, admin.ModelAdmin):
    list_display = ('name', 'author', 'added')
    list_filter = ['categories', 'author']
    resource_class = BookResource
like image 170
Matthew Hegarty Avatar answered Oct 21 '25 22:10

Matthew Hegarty



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!