Экспортируйте только данные, зарегистрированные пользователем / 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.

Вернуться на верх