So I'm trying to use import-export to export inline OrderEntries from the parent Order model in Django's admin into a csv or whatever. I don't want to have to register the inline model with Django (which works somewhat ok), but rather using the import-export's resources module, export directly from the parent Order model's list view in Django's admin. I couldn't find any way to do this in any of the Stack Overflow posts, and some of the other resources I googled.
I tried using the ForeignKeyWidget and fields module to allow me to do this, but when I export, no data is populated.
Here are my models:
class OrderEntry(models.Model):
order = models.ForeignKey(Order, related_name="order_entries", on_delete=models.PROTECT)
inventory = models.ForeignKey(Inventory, related_name="order_entries")
quantity = models.PositiveSmallIntegerField(default=1)
subtotal = models.DecimalField(max_digits=10, decimal_places=2, blank=True, null=True)
class Order(models.Model):
user = models.ForeignKey(User, related_name="orders")
order_type = models.CharField(max_length=1, choices=ORDER_TYPE_STATUS_CHOICES, default='D')
payment_type = models.CharField(max_length=4, choices=PAYMENT_TYPE_STATUS_CHOICES, default='Cash')
class Inventory(models.Model):
description = models.CharField(blank=True, null=True, max_length=100)
quantity = models.IntegerField()
item = models.ForeignKey(Item, related_name="inventory")
class Item(models.Model):
name = models.CharField(max_length=40)
brand = models.CharField(max_length=40)
and my admin (I only have quantity as I was testing various ways to see if it would populate first):
class OrderEntryResource(resources.ModelResource):
quantity = fields.Field(column_name="Quantity", attribute="orderentry", widget=ForeignKeyWidget(OrderEntry, field='quantity'))
class Meta:
model = OrderEntry
fields = ('order', 'inventory', 'quantity', 'subtotal',)
class OrderEntryInline(admin.TabularInline):
model = OrderEntry
class OrderAdmin(ImportExportModelAdmin):
inlines = [OrderEntryInline]
resource_class = OrderEntryResource
admin.site.register(Order, OrderAdmin)
If at all possible, I'd like to include foreignkey fields for the User, Inventory, and Item models when I export also. Thanks so much!