Экспортируйте только данные, зарегистрированные пользователем / Django import-export
Из таблицы Product
можно экспортировать продукты в формате excel. Но экспортируются все продукты пользователя.
Как я могу экспортировать только продукцию компании request.user
?
Вот вид :
def export_excel(request):
dataset = ProductResource().export()
response = HttpResponse(dataset.xlsx, content_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
response["Content-Disposition"] = "attachment; filename=Products-" + str(datetime.datetime.now().date())+".xlsx"
return response
Здесь находится файл resources.py :
class ProductResource(resources.ModelResource):
author = Field()
brand_id = Field()
class Meta:
model = Product
fields = ["id", "author", "brand_id", "name", "barcode", "unit"]
export_order = ["id", "author", "brand_id", "name", "barcode", "unit"]
def dehydrate_author(self, product: Product) -> str:
return f"{product.author.username}"
def dehydrate_brand_id(self, product: Product) -> str:
return f"{product.brand_id.name}"
Это легко сделать, вы можете передать набор запросов в export()
:
def export_excel(request):
# adjust as required
qs = Product.objects.filter(product__author__username=request.user.username)
dataset = ProductResource().export(qs)
# ...
return response
Если это поможет, обратите внимание, что import-export предоставляет UI интерфейс для экспорта через Admin integration.