使用Django admin中的import-export从父模型导出内联ForeignKey条目

时间:2018-11-14 09:17:05

标签: django django-models django-templates django-admin django-import-export

因此,我尝试使用 import-export 将Django管理中父级 Order 模型中的内联 OrderEntries 导出到csv或随你。我不想在Django中注册内联模型(工作正常),而是使用import-export的资源模块,直接从Django管理中的父Order模型的列表视图中导出。在任何Stack Overflow帖子以及我用Google搜索的其他一些资源中,我都找不到任何实现此目的的方法。

我尝试使用ForeignKeyWidget和fields模块允许我执行此操作,但是在导出时,没有数据被填充。


这是我的模型

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)

和我的管理员(我只有数量,因为我正在测试各种方法来查看它是否会首先填充):

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)

如果可能的话,我也想在导出时包括User,Inventory和Item模型的外键字段。非常感谢!

0 个答案:

没有答案