0

在 Django 3.2.8 中,我有一个视图,它生成一个 CSV 文件,其中包含来自多个数据库实例的信息。CSV 是从项目页面中的按钮生成的。

我想知道是否有办法将 URL 更改为类似

导出/csv/all_items

而不是这样的:

导出/csv/1,2,3,4,5

其中 1,2,3,4,5 是导出实例的 ids/pk

在 urls.py 我添加:

path("items/", views.items, name="items")
path("export/csv/<itemIds>", views.export_csv, name="export_csv")

其中,itemIds是从视图export_csv中触发的视图项目中收集的 pk/id列表生成的字符串

视图.py

def items(request):
    items = models.Item.objects
    itemsIds = list(items.values_list("pk", flat=True))
    itemsIds = str(itemsIds).strip("[]")
    return render(request, "page.html", {"itemsIds": itemsIds,})


def export_csv(request, itemsIds):
    itemsIds = itemsIds.replace(" ", "").split(",")
    items = models.Item.objects.filter(pk__in=itemsIds)
    ...
    Logic to to export the CSV file
    ...
    return httpResponse

提前致谢

4

0 回答 0