Я совершенно новый Django, и я создаю веб-сайт электронной коммерции с Django. Я хочу экспортировать объект модели в формат xlsx. Для этого я использую библиотеку django-import-export, но проблема в том, что эта библиотека экспортирует все объекты модели. Я просто хочу экспортировать только один объект. Например, если кто-то заказывает продукт, я хочу, чтобы этот объект заказа экспортировался в формат xlsx. Я могу написать это в оболочке Python, но я хочу, чтобы это было сделано в панели администратора. На картинке ниже вы можете увидеть мою модель Order и модель OrderItem. Как я могу экспортировать точно так, как на картинке, в xlsx.
Заказать модель в панели администратора
Models.py
class Order(models.Model):
STATUS = (("NEW", "NEW"), ("ACCEPTED", "ACCEPTED"), ("COMPLETED", "COMPLETED"))
customer = models.ForeignKey(Customer,on_delete=models.CASCADE, blank=True, null=True)
name = models.CharField(max_length=50)
surname = models.CharField(max_length=50)
phone = models.CharField(max_length=50)
email = models.EmailField(max_length=50, blank=True)
address = models.CharField(max_length=100)
status=models.CharField(max_length=10, choices=STATUS,default='NEW')
total = models.FloatField()
adminnote = models.CharField(max_length=100, blank=True)
updated_at=models.DateTimeField(auto_now=True)
ordered_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name + self.surname
class OrderItem(models.Model):
order = models.ForeignKey(Order, on_delete=models.CASCADE)
product = models.ForeignKey(Product, on_delete=models.CASCADE)
quantity = models.IntegerField()
price = models.DecimalField(max_digits=8, decimal_places=2)
total_price = models.DecimalField(max_digits=8, decimal_places=2)
date_added = models.DateTimeField(auto_now_add=True)
admin.py
class OrderProductline(admin.TabularInline):
model = OrderItem
readonly_fields = ('order', 'product', 'price', 'quantity', 'total_price')
can_delete = False
extra = 0
class OrderResource(resources.ModelResource):
class Meta:
model = Order
class OrderAdmin(ImportExportModelAdmin):
list_display = ['name', 'surname', 'phone', 'address', 'total', 'status', 'ordered_at']
list_filter = ['status']
exclude = ['customer']
readonly_fields = ('name', 'surname', 'email', 'phone', 'address', 'total')
can_delete = False
inlines = [OrderProductline]
resource_class = OrderResource
class OrderProductAdmin(admin.ModelAdmin):
list_display = ['order', 'product', 'price', 'quantity','total_price']
list_filter = ['order']
admin.site.register(Order, OrderAdmin,)
admin.site.register(OrderItem, OrderProductAdmin)
Я использую Django 3.0.0, Python 3.7.