Экспорт записей Inline ForeignKey из родительской модели с использованием import-export в админке Django - PullRequest
0 голосов
/ 14 ноября 2018

Поэтому я пытаюсь использовать import-export для экспорта встроенных OrderEntries из родительской Order модели в админке Django в csv или что-то еще.Я не хочу регистрировать встроенную модель в Django (которая работает несколько хорошо), а скорее используя модуль ресурсов import-export, экспортируйте напрямую из представления списка родительской модели Order в админке Django.Я не смог найти способ сделать это ни в одной из публикаций Stack Overflow и некоторых других ресурсов, которые я гуглил.

Я попытался использовать модуль 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)

и мой admin (У меня есть только количество, так как я тестировал различные способы, чтобы увидеть, будет ли оно заполняться первым):

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)

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

...