在 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
提前致谢