将 UUID 列表作为参数传递给 django 端点 url
Pass List of UUID to django endpoint url as param
我有这个代码
#VIEWS
def report_pdf(request, queryset):
if request.method == "GET":
trans = Transaction.objects.filter(id__in=queryset)
return something
#URLS
path("pdf/<uuid:queryset>", views.report_pdf, name="get_pdf")
#FRONT END
const handlePDFDownload = (ids) => {
const body = ids
axios.get(`/calc/pdf/`,body , {
responseType: 'blob',
}).then(res => {
fileDownload(res.data, 'filename.zip');
console.log(res, 'downloading');
}).catch(err => {
console.log(err);
})
}
现在从我的前端反应我发送一个 get
请求到这个 endpoint
与 list of UUID
值。
我无法从前端找到访问该列表的方法。
如有任何建议,我们将不胜感激!
您正在从前端发送 uuid 列表,但在您的网址中需要一个 uuid,因此您需要像这样更改它:
urls.py:
path("pdf/", views.report_pdf, name="get_pdf")
views.py:
def report_pdf(request):
if request.method == "GET":
uuid_list = request.GET.getlist("queryset[]")
trans = Transaction.objects.filter(id__in=uuid_list)
return something
我建议您将 uuid 作为查询参数传递给 url as
../pdf?queryset=<uuids here>
然后在您的视图中获取列表
queryset = request.GET.get('queryset')
然后在视图中使用 queryset
。
我有这个代码
#VIEWS
def report_pdf(request, queryset):
if request.method == "GET":
trans = Transaction.objects.filter(id__in=queryset)
return something
#URLS
path("pdf/<uuid:queryset>", views.report_pdf, name="get_pdf")
#FRONT END
const handlePDFDownload = (ids) => {
const body = ids
axios.get(`/calc/pdf/`,body , {
responseType: 'blob',
}).then(res => {
fileDownload(res.data, 'filename.zip');
console.log(res, 'downloading');
}).catch(err => {
console.log(err);
})
}
现在从我的前端反应我发送一个 get
请求到这个 endpoint
与 list of UUID
值。
我无法从前端找到访问该列表的方法。
如有任何建议,我们将不胜感激!
您正在从前端发送 uuid 列表,但在您的网址中需要一个 uuid,因此您需要像这样更改它:
urls.py:
path("pdf/", views.report_pdf, name="get_pdf")
views.py:
def report_pdf(request):
if request.method == "GET":
uuid_list = request.GET.getlist("queryset[]")
trans = Transaction.objects.filter(id__in=uuid_list)
return something
我建议您将 uuid 作为查询参数传递给 url as
../pdf?queryset=<uuids here>
然后在您的视图中获取列表
queryset = request.GET.get('queryset')
然后在视图中使用 queryset
。